每天一个小程序(6)—— 链栈
来源:互联网 发布:淘宝x1手柄 编辑:程序博客网 时间:2024/05/19 13:27
#include <stdio.h>#include <stdlib.h>typedef int datatype;typedef struct LStack{datatype data;struct LStack *next;}StackNode,*LinkStack;//初始化LinkStack Init_LinkStack(){return NULL;}//判断栈空int Empty_LinkStack(LinkStack top){if(top == NULL) return 1;elsereturn 0;}//入栈LinkStack Push_LinkStack(LinkStack top,datatype x){LinkStack s;s = (LinkStack)malloc(sizeof(StackNode));s->data = x;s->next = top;top = s;return top;}//出栈LinkStack Pop_LinkStack(LinkStack top,datatype *x){LinkStack p;if(top == NULL)return NULL;else{*x = top->data;p = top;top = top->next;free(p);}return top;}void print(LinkStack top){while(!Empty_LinkStack(top)){printf("%d ",top->data);top = top->next;}}void main(){LinkStack top = Init_LinkStack();int data;printf("入栈\n");scanf("%d",&data);while(data != -1){top = Push_LinkStack(top,data);scanf("%d",&data);}printf("出栈\n");while(!Empty_LinkStack(top)){top = Pop_LinkStack(top,&data);printf("%d ",data);}}
小 结
1. 栈是限定仅能在一端进行插入、删除的线性表;2. 栈的元素具有后进先出的特点;
3. 栈顶元素的位置由一个称为栈顶指针的变量指示,
4. 进栈、出栈操作要修改栈顶指针。
0 0
- 每天一个小程序(6)—— 链栈
- 每天一个小程序(4)——顺序栈
- 每天一个小程序(9)——链队
- 每天一个小程序(18)——“牛津"词典
- 每天一个小程序(19)——选择排序
- 每天一个java小程序-6
- 每天一个java小程序-6
- 每天一个小程序(1)——链表的创建
- 每天一个小程序(3)——双向链表
- 每天一个小程序(5)——栈的应用数制转换
- 每天一个小程序(7)——C++中sort函数的应用
- 每天一个小程序(8)——顺序循环队列
- 每天一个小程序(10)——直接插入排序
- 每天一个小程序(11)——折半插入排序
- 每天一个小程序(12)——交换排序之冒泡排序
- 每天一个小程序(13)——统计字符个数
- 每天一个小程序(14)——交换排序之双向冒泡排序
- 每天一个小程序(15)——交换排序之快速排序
- vim 快速移动
- Javascript添加千分位和去掉千分位实例
- 恢复以往正常体重
- 设计模式原则
- zoj 3706 Break Standard Weight(数学题)
- 每天一个小程序(6)—— 链栈
- 发撒个
- 编译时打印宏内容
- 计算机病毒的特征
- MBProgressHUD 不能在键盘前显示(分享后显示)
- 我不懂C语言
- 关于*p++和*++p等等
- Win7操作系统: 请求的操作需要提升
- 规定复合弓