栈--链表实现
来源:互联网 发布:linux 查看命令的路径 编辑:程序博客网 时间:2024/06/05 00:41
数据结构,努力。
#include "stdlib.h"typedef struct Node *PtrToNode;typedef PtrToNode Stack;typedef struct Node {int Element;PtrToNode Next;};int IsEmpty(Stack SS);Stack CreateStack();void DisposeStack(Stack SS);void MakeEmpty(Stack SS);void Push(int X,Stack SS);int Top(Stack SS);//返回栈顶元素void Pop(Stack SS);//出栈int IsEmpty(Stack SS){return SS->Next==NULL;}Stack CreateStack(){Stack SS=malloc(sizeof(struct Node));if (SS == NULL){printf("size is not enough\n");}SS->Next=NULL;MakeEmpty(SS);return SS;}void MakeEmpty(Stack SS){if (SS==NULL){printf("it is empty\n");}else{while (!IsEmpty(SS)){Pop(SS);}}}void Push(int X,Stack SS){PtrToNode Tmp;Tmp=malloc(sizeof(struct Node));if (Tmp!=NULL){Tmp->Element=X;Tmp->Next=SS->Next;SS->Next=Tmp;}else{printf("out of space\n");}}void Pop(Stack SS){if (IsEmpty(SS)){printf("it is empty\n");}else{PtrToNode Tmp=SS->Next;SS->Next=Tmp->Next;free(Tmp);}}int Top(Stack SS){if (IsEmpty(SS)){printf("it is empty\n");return 0;}else{return SS->Next->Element;}}int main(){Stack SS=CreateStack();int i;for (i=0;i<5;i++){Push(i,SS);}while (!IsEmpty(SS)){printf("%d\n",Top(SS));Pop(SS);}return 0;}
0 0
- Java栈实现:数组实现和链表实现
- 栈实现队列,链表实现栈
- 栈模型的实现--链表实现
- 栈---链表实现
- 栈--链表实现
- 栈-----------链表实现
- 链表实现栈
- 链表实现栈
- 链表实现栈
- 各种实现队列的问题:链表实现,栈实现队列及队列实现栈
- 链表实现的栈
- 利用链表实现栈
- 栈(链表实现)
- 栈的链表实现
- 栈的链表实现
- 栈的链表实现
- 数据结构 栈 (链表实现)
- 链表实现队列-栈
- crosses initialization of
- iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- java 向网络post数据
- WIN7/8 下Fedora双系统的安装
- 《unix网络编程》(15)poll函数以及使用poll的客户服务器程序
- 栈--链表实现
- 练习1
- Git 与TortoiseGit 的安装设置
- 实时分析网站UV与Flajolet-Martin算法
- android模拟器使用sd卡
- 栈和队列之间的互相实现
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- 重生之晚来月
- HDU 1698 Just a Hook(线段树成段更新)