#include <stdio.h>
#include <stdlib.h>
//链栈基本操作(入栈和出栈)C语言详解
//通过采用头插法操作数据的单链表实现了链栈结构,这里给出链栈及基本操作的C语言完整代码:
//链表中的节点结构
typedef struct lineStack{
int data;
struct linkStack *next;
}lineStack;
//stack 为当前的链栈,a表示为入栈元素
lineStack *push(lineStack *stack,int a)//向栈里面压存一个数据
{
//创建新的元素节点,节点类型是(lineStack)
lineStack *line = (lineStack*)malloc(sizeof(lineStack));
line->data = a;
//新节点与头节点建立逻辑关系
line->next = stack;
//更新头指针的指向
stack=line;
return stack;
}
//出栈
lineStack *pop(lineStack *stack)
{
if(stack){
//声明一个新指针指向栈顶节点
lineStack *p = stack;
//更新头指针
stack = stack->next;
printf("出栈元素:%d\n",p->data);
if(stack)
{
printf("新栈顶元素为:%d\n",stack->data);
}
else{
printf("此栈为空栈\n");
}
free(p);
}
else{
printf("栈内没有元素\n");
return stack;
}
return stack;
}
int main()
{
lineStack *stack = NULL;
stack = push(stack,1);
stack = push(stack,2);
stack = push(stack,3);
stack = pop(stack);
stack = pop(stack);
stack = pop(stack);
stack = pop(stack);
return 0;
}
链栈基本操作(入栈和出栈)C语言详解
最新推荐文章于 2024-08-13 09:06:38 发布