栈的C语言实现(链表)
来源:互联网 发布:mac 终端显示路径 编辑:程序博客网 时间:2024/04/18 18:54
//栈的C语言实现(链表) #include <stdio.h>#include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef struct _NODE_{struct _NODE_ *next;int data;}NODE;typedef struct _STACK{NODE *top;}STACK;//创建一个空栈 STACK *Create(){STACK *stack;stack=(STACK*)malloc(sizeof(STACK)); if(stack==NULL){printf("创建失败!");exit(-1);} else{stack->top=NULL;return stack;}}//入栈,单链表的顶端来实现插入 ,链表的顶端做为栈顶 STACK *Push(STACK *stack,int element){if(stack==NULL){printf("需要先创建stack!");exit(-1);}NODE *node;node=(NODE*)malloc(sizeof(NODE));node->data=element;node->next=stack->top;stack->top=node;return stack;} //打印栈 void Printf(STACK *stack){NODE *node; if(stack->top==NULL){printf("空栈!");exit(-1); }else{node=stack->top;do{printf(" %d ",node->data);node=node->next;}while(node!=NULL);}printf("\n");}//出栈 STACK *Pop(STACK *stack){int x;NODE *node;if(stack==NULL||stack->top==NULL){printf("空栈!");}else{if(stack->top->next==NULL){x=stack->top->data;node=stack->top;stack->top=NULL;}else{node=stack->top;stack->top=node->next;free(node);}return stack;}}int main(int argc, char *argv[]) {STACK *stack=Create();stack=Push(stack,1);stack=Push(stack,2);stack=Push(stack,3);stack=Push(stack,4);stack=Push(stack,5);Printf(stack);stack=Pop(stack);Printf(stack);return 0;}
0 0
- 栈的C语言实现(链表)
- 链表、栈、队列的C语言实现
- 顺序栈的实现(C语言)
- 顺序栈的实现(C语言)
- 栈的链式实现(C语言)
- 栈的C语言实现(数组)
- 顺序栈的实现(c语言)
- 栈的基本功能实现(C语言)
- 栈(Stack)的C语言实现
- 栈的C语言实现
- 栈的C语言实现
- C语言栈的实现
- 栈的C语言实现
- 栈的C语言实现
- 栈的c语言实现
- 栈的C语言实现
- 栈的c语言实现
- c语言栈的实现
- 【GitHub】GitHub .gitignore文件简单配置使用
- 使用awk命令实现类sql功能
- 367. Valid Perfect Square我的做法
- 使用Android Studio遇到的问题及解决过程
- JHTP自测题_第七章_数组及动态数组(Array and ArrayList)
- 栈的C语言实现(链表)
- Windows下MySql5.6.24免安装版环境配置
- web.xml 配置介绍
- Python小记01 一些语法(和JAVA不同的)
- Java Script 函数基础知识
- ATT
- PDO预处理案例
- UNIX - 线程(1)
- 欢迎使用Markdown编辑器写博客