数据结构课程设计c语言代码
时间: 2023-07-29 12:14:47 浏览: 109
28个数据结构课程设计报告+代码(c or c++).zip_c/C++_报告+代码_数据结构课程设计_数据结构项目
5星 · 资源好评率100%
好的,以下是一个简单的数据结构课程设计的示例代码,使用了C语言实现了栈的基本操作。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 定义栈的最大容量
// 定义栈结构体
typedef struct {
int data[MAX_SIZE]; // 存储栈内元素的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void initStack(Stack *s)
{
s->top = -1; // 栈顶指针初始化为-1,表示栈为空
}
// 判断栈是否为空
int isEmpty(Stack *s)
{
if(s->top == -1) {
return 1;
}
return 0;
}
// 判断栈是否已满
int isFull(Stack *s)
{
if(s->top == MAX_SIZE - 1) {
return 1;
}
return 0;
}
// 入栈操作
int push(Stack *s, int x)
{
if(isFull(s)) {
return 0; // 栈已满,无法入栈
}
s->data[++s->top] = x; // 栈顶指针加1,插入元素
return 1;
}
// 出栈操作
int pop(Stack *s, int *x)
{
if(isEmpty(s)) {
return 0; // 栈为空,无法出栈
}
*x = s->data[s->top--]; // 取出栈顶元素,并将栈顶指针减1
return 1;
}
// 获取栈顶元素
int getTop(Stack *s, int *x)
{
if(isEmpty(s)) {
return 0; // 栈为空,无法获取栈顶元素
}
*x = s->data[s->top]; // 获取栈顶元素,但不弹出
return 1;
}
int main()
{
Stack s; // 定义一个栈
int i, x;
initStack(&s); // 初始化栈
// 测试入栈操作
printf("入栈操作:\n");
for(i = 0; i < 5; i++) {
printf("输入第%d个元素:", i+1);
scanf("%d", &x);
push(&s, x);
}
// 测试出栈操作
printf("\n出栈操作:\n");
while(!isEmpty(&s)) {
pop(&s, &x);
printf("%d ", x);
}
return 0;
}
```
以上代码实现了栈的初始化、判断栈是否为空或已满、入栈、出栈、获取栈顶元素等基本操作。你可以根据自己的需求和课程要求来进行修改和完善。
阅读全文