初学数据结构之堆栈
2015-07-20 12:48
447 查看
一:数组实现 #define MaxSize 10 typedef struct { int Data[MaxSize]; int Top; }Stack; void Push(Stack *Ptrs,int item) { if(Ptrs->Top==MaxSize-1) { printf("堆栈满"); return; } else { Ptrs->Data[++(Ptrs->Top)]=item; return; } } int Pop(Stack *Ptrs) { if(Ptrs->Top==-1) { printf("堆栈空"); return ERROR; } else { return (Ptrs->Data[(Ptrs->Top)--]); } } 二:链表实现 typedef struct Node { int Data; struct Node *Next; }LinkStack; LinkStack *Top; LinkStack *CreateStack() { LinkStack *S; S=(LinkStack *)malloc(sizeof(struct Node)); S->Next=NULLl return S; } int IsEmpty(LinkStack *S) { return (S->Next==NULL) } void Push(int item,LinkStack *S) { struct Node *TmpCell; TmpCell=malloc(sizeof(struct Node)); TmpCell->Data=item; TmpCell->Next=S->Next; S->Next=TmpCell; } int Pop(LinkStack *S) { struct Node *FirstCell; int TopElem; if(IsEmpty(S)) { printf("堆栈空"); return NULL; } else { FirstCell=S->Next; S->Next=FirstCell->Next; TopElem=FirstCell->Data; free(FirstCell); return TopElem; } }
相关文章推荐
- Linux C函数参考手册(PDF版)
- Lua教程(十七):C API简介
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构揭秘一
- C#实现打造气泡屏幕保护效果
- C/C++数据对齐详细解析
- 数据结构之Treap详解
- C 语言基础教程(我的C之旅开始了)[三]
- C++中的extern “C”用法详解
- C 语言基础教程(我的C之旅开始了)[七]
- C字符串操作函数实现方法小结
- C/C++ 宏详细解析
- C/C++实现对STORM运行信息查看及控制的方法
- 用C#生成不重复的随机数的代码
- JavaScript数据结构和算法之图和图算法
- 在c和c++中实现函数回调
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- 浅析C/C++中被人误解的SIZEOF