栈--最终版
来源:互联网 发布:windows 7 安装.net 编辑:程序博客网 时间:2024/06/07 05:24
#include <stdio.h>#include <Stdlib.h>typedef struct node{ int data; struct node *pNext;}NODE,*PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;}STACK,* PSTACK;void init(PSTACK pS){ pS->pTop=(PNODE)malloc(sizeof(NODE)); if(!pS->pTop) exit(0); pS->pBottom=pS->pTop; pS->pTop->pNext=NULL;}void push(PSTACK pS,int val){ PNODE pNew=(PNODE)malloc(sizeof(NODE)); pNew->data=val; pNew->pNext=pS->pTop; pS->pTop=pNew;}void traverse(PSTACK pS){ PNODE p=pS->pTop; while(p!=pS->pBottom) { printf("%d ",p->data); p = p->pNext; } printf("\n");}int empty(PSTACK pS){ if (pS->pTop==pS->pBottom) { return 0; } else return 1;}int pop(PSTACK pS,int * pVal){ if(empty(pS)==0) return 0; else {// return true; PNODE r =pS->pTop; *pVal = r->data; pS->pTop=r->pNext; free(r); r=NULL; return 1; }}void Clear(PSTACK pS){ if(empty(pS)==0) return; PNODE p = pS->pTop; PNODE q = NULL; while(p != pS->pBottom) { q = p->pNext; free(p); p = q; } pS->pTop = pS->pBottom;}int main(){ STACK S; int val; init(&S); push(&S,1); push(&S,2); push(&S,23); push(&S,43); push(&S,9); pop(&S,&val); traverse(&S); if (pop(&S,&val)==1) { /* code */ printf("success! %d\n",val); } else printf("FAil\n"); traverse(&S); Clear(&S); traverse(&S); return 0;}
0 0
- 栈--最终版
- STM32之PWM最终版-注释明了…
- 排序最终版
- grayeyes 最终版
- Lua 最终版
- Lomboz for Eclipse 最终版
- 旁注资料最终版
- 显示ToolTIP最终版
- 旁注资料最终版
- 《飞鸽传书怎么用》最终版
- 客户端拍照处理最终版
- 我的vimrc 最终版
- 人脸识别最终版
- 万能批处理工具包最终版
- rmxp4droid 2.4最终版(20131003)
- 游戏盒子接球最终版
- kaldi安装错误最终版
- java mysql jdbc 最终版
- Linux Advance--从一道题谈linux下fork的运行机制
- Python小函数
- 学习随记(二)
- flash buidler 4.7 真机调试
- HDU 1698 Just a Hook【线段树】区间修改,查询总和
- 栈--最终版
- hihocoder 1014 trie树
- PAT-PAT (Advanced Level) PractiseBe Unique (20) 【一星级】
- JAVA编码问题
- Java发送邮件
- Android 多线程及多线程中更新控件。
- 启发式搜索A * 算法
- 2015 重庆市赛 解题报告
- java中数组和集合的互相转换