链栈的初始化,建立,插入,查找,删除。
2010-10-10 22:46
375 查看
代码
//////////////////////////////////////////// //链栈的初始化,建立,插入,查找,删除。 // //Author:Wang Yong // //Date: 2010.8.19 // //////////////////////////////////////////// #include <stdio.h> #include <stdlib.h> typedef int ElemType; /////////////////////////////////////////// //定义链栈的结构类型 typedef struct StackNode { ElemType data; //栈的数据 struct StackNode *next; //指针域 } StackNode,*LinkStack; ////////////////////////////////////////// //链栈的初始化 LinkStack LinkStackInit() { LinkStack top; //构造一个空栈 top = (StackNode *)malloc(sizeof(StackNode)); if(!top) printf("OVERFLOW\n"); top = NULL; return top; } ///////////////////////////////////////// //判断栈空的算法 int LinkStackEmpty(LinkStack top) { if(!top) return 1; else return 0; } //////////////////////////////////////// //进栈的算法 LinkStack LinkStackPush(LinkStack top,ElemType x) { LinkStack p; p = (StackNode *)malloc(sizeof(StackNode)); //创建一个结点 p->data = x; //设置结点的数据域 p->next = top; //设置结点的指针域 top = p; //设置新的栈顶 return top; } //////////////////////////////////////// //出栈的算法 ElemType LinkStackPop(LinkStack &top)//出栈的时候必须判断是否栈空 { LinkStack p; ElemType x; if(top != NULL) { x = top->data; //取栈顶元素 p = top; //将栈顶结点重置 top = top->next; free(p); //释放原栈顶结点空间 } else printf("stack empty!\n"); return x; } int main() { LinkStack lstack; lstack = LinkStackInit(); ElemType x; printf("请输入进栈的元素:"); while(scanf("%d",&x) != EOF) { lstack = LinkStackPush(lstack,x); } LinkStack p; for(p = lstack;p != NULL; p = p->next) printf("%d ",p->data); printf("出栈的结果为:"); while(lstack != NULL) printf("%d ",LinkStackPop(lstack)); return 0; }
相关文章推荐
- 链栈的初始化,建立,插入,查找,删除。
- 链栈的初始化,建立,插入,查找,删除
- 顺序栈的初始化,建立,插入,查找,删除。
- 循环单链表的初始化,建立,插入,查找,删除。
- 顺序栈的初始化,建立,插入,查找,删除
- 顺序栈的初始化,建立,插入,查找,删除。
- 单链表的初始化,建立,插入,查找,删除
- 顺序队列的初始化,建立,插入,查找,删除。
- 循环单链表的初始化,建立,插入,查找,删除
- 双链表的初始化,建立,插入,查找,删除。
- 顺序队列的初始化,建立,插入,查找,删除。
- 链队列的初始化,建立,插入,查找,删除。
- 顺序队列的初始化,建立,插入,查找,删除
- 单链表的初始化 建立 插入 查找 删除(转自newwy)
- 循环单链表的初始化,建立,插入,查找,删除。
- 链队列的初始化,建立,插入,查找,删除。
- 链队列的初始化,建立,插入,查找,删除
- 顺序队列的初始化,建立,插入,查找,删除。
- 顺序串的初始化,建立,插入,查找,删除。
- 顺序串的初始化,建立,插入,查找,删除。