C语言创建一个空的链栈,实现栈的入栈、出栈、返回栈顶元素基本算法主函数
时间: 2023-06-06 09:07:07 浏览: 121
栈的创建、入栈、出栈算法
以下是C语言创建空的链栈,实现栈的入栈、出栈、返回栈顶元素的基本算法和主函数:
```
#include <stdio.h>
#include <stdlib.h>
// 链栈结构体
typedef struct node
{
int data; // 数据
struct node* next; // 指向下一个节点的指针
}stack;
// 初始化链栈
int initStack(stack** p)
{
*p = NULL;
return 0;
}
// 入栈函数
int push(stack** p, int data)
{
stack* new_node = (stack*)malloc(sizeof(stack));
new_node->data = data;
new_node->next = *p;
*p = new_node;
return 0;
}
// 出栈函数
int pop(stack** p)
{
if (*p == NULL)
{
printf("Stack is empty!\n");
return -1;
}
stack* temp = *p;
*p = temp->next;
free(temp);
return 0;
}
// 返回栈顶元素函数
int getTop(stack* p)
{
if (p == NULL)
{
printf("Stack is empty!\n");
return -1;
}
return p->data;
}
// 主函数
int main()
{
stack* s;
initStack(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("Top element is: %d\n", getTop(s));
pop(&s);
printf("Top element is: %d\n", getTop(s));
pop(&s);
printf("Top element is: %d\n", getTop(s));
pop(&s);
printf("Top element is: %d\n", getTop(s));
pop(&s);
return 0;
}
```
希望这个算法能对你有所帮助!如果你有任何其他问题,欢迎继续提问。
阅读全文