#include#include //链栈基本操作(入栈和出栈)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("出栈元素:%dn",p->data); if(stack) { printf("新栈顶元素为:%dn",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; }



