数据结构---链栈的基本操作
来源:互联网 发布:原始dbc数据 编辑:程序博客网 时间:2024/05/21 03:55
链栈的数据存储为:
typedef struct SNode{ int data; struct SNode *next;}SNode,*StackPtr;typedef struct{ StackPtr top; int length;}LinkStack;链栈的基本操作为:
Status InitStack(LinkStack &S){ S.top=(StackPtr)malloc(sizeof(SNode)); if(!S.top) return ERROR; S.top->next=NULL; S.length=0; return OK;}Status DestroyStack(LinkStack &S){ StackPtr p; while (S.top) { p=S.top->next; free(S.top); S.top=p; } S.length=0; return OK;}Status ClearStack(LinkStack &S){ StackPtr q,p=S.top->next; S.top->next=NULL; S.length=0; while (p) { q=p->next; free(p); p=q; } return OK;}Status StackEmpty(LinkStack S){ return 0==S.length?true:false;}Status StackLength(LinkStack S){ return S.length;}Status Push(LinkStack &S,int e){ StackPtr p=(StackPtr)malloc(sizeof(SNode)); if(!p) return ERROR; p->data=e; p->next=S.top->next; S.top->next=p; S.length++; return OK;}Status Pop(LinkStack &S,int &e){ if(StackEmpty(S)) return ERROR; StackPtr p=S.top->next; e=p->data; S.top->next=p->next; free(p); S.length--; return OK;}Status GetTop(LinkStack &S,int &e){ if(StackEmpty(S)) return ERROR; StackPtr p=S.top->next; e=p->data; return OK;}Status StackTraverse(LinkStack S){ StackPtr p=S.top->next; while (p) { printf("%d ",p->data); p=p->next; } printf("\n"); return OK;}
- 数据结构---链栈的基本操作
- 数据结构 链栈的基本操作
- 链栈的基本操作-数据结构
- 【数据结构】链栈的基本操作
- 数据结构 链栈的基本操作
- 数据结构的链栈基本操作
- 数据结构-链栈的基本操作
- 【数据结构】 栈的基本操作
- 数据结构栈的基本操作
- 栈的基本操作-数据结构
- 【数据结构】栈的基本操作
- [数据结构]栈的基本操作
- 数据结构--栈的基本操作
- 数据结构--栈的基本操作
- 数据结构:栈的基本操作
- 数据结构-栈的基本操作
- 数据结构--栈的基本操作
- 数据结构——链栈的基本操作
- BZOJ 2038([2009国家集训队]小Z的袜子(hose)-莫队算法序列)
- uva10148 - Advertisement(广告)
- linux多线程和锁
- tomcat javaweb开发基础(8)servlet程序设计(1)
- CRM系统开发过程中的CRUD模板
- 数据结构---链栈的基本操作
- strcpy完整版 与 strcpy为什么有返回值
- hdu 2425 (BFS)
- Debian rsyslog.conf Linux man page
- 在iphone工程中如何选择最佳的xml解析器
- C语言\r\n和\n区别
- Android UI 之SlidingMenu实现方法(二)
- 三大自动
- 10603 - Fill,倒水问题 bfs解