数据结构 ——进出栈操作的算法
来源:互联网 发布:bim软件 编辑:程序博客网 时间:2024/05/16 11:00
栈操作的算法:#include<stdio.h>#include<malloc.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); //初始化栈void push(PSTACK,int); //入栈void traverse(PSTACK); //遍历栈bool pop(PSTACK,int *); //出栈void clear(PSTACK pS); //清空栈 函数声明时形参可以不用写,形参的类型要写int main(void){STACK S; //S和pS是一个地址int val;init(&S); //造成一个空栈push(&S,1);push(&S,2);push(&S,3);push(&S,4);push(&S,5);push(&S,6);traverse(&S);if(pop(&S,&val))printf("出栈成功,出栈的元素是%d\n",val);elseprintf("出栈失败!\n");traverse(&S);clear(&S);printf("元素将被清空!\n");traverse(&S);return 0;}void init(PSTACK pS){pS->pTop=(PNODE)malloc(sizeof(NODE));if(NULL==pS->pTop){printf("分配内存失败,程序终止!\n");exit(-1);}pS->pBottom=pS->pTop;pS->pTop->pNext=NULL;return ;}void push(PSTACK pS,int val){PNODE pNew=(PNODE)malloc(sizeof(NODE));pNew->data=val;pNew->pNext=pS->pTop;pS->pTop=pNew;return ;}void traverse(PSTACK pS){PNODE p=pS->pTop;while(p!=pS->pBottom){printf("%d ",p->data);p=p->pNext;}printf("\n");return ;}bool empty(PSTACK pS){if(pS->pBottom==pS->pTop)return true;elsereturn false;}bool pop(PSTACK pS,int *pVal){if(empty(pS)){return false;}else{PNODE r=pS->pTop; *pVal=r->data;pS->pTop=r->pNext;free(r);r=NULL;return true;}}void clear(PSTACK pS){if(empty(pS)){return ;}else{PNODE p=pS->pTop;PNODE q=NULL;while(p!=pS->pBottom){q=p->pNext;free(p);p=q;}}pS->pTop=pS->pBottom; //必须有不然是乱数字}
0 0
- 数据结构 ——进出栈操作的算法
- 数据结构 ——单链表操作的算法
- 数据结构 ——队列操作的算法
- 数据结构与算法——栈的相关操作
- 栈的进出序列问题
- 数据结构-栈操作算法
- 数据结构 ——静态二叉树操作的算法
- 数据结构与算法——单链表的基本操作
- 数据结构 — 二叉树的基本操作实现(递归算法)
- 进出栈
- 进出栈
- 数据结构算法——单链表及其操作
- 数据结构——栈的基本操作
- 数据结构——栈的基本操作
- 数据结构——栈的基本操作
- 数据结构—单链表的操作
- 数据结构—双链表的操作
- 算法与数据结构-栈的基本操作C语言实现
- Linux:shell编程
- 假设以带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点(注意不设头指针) 试编写相应的队列初始化,入队列和出队列的算法
- html文件的开头
- python版本汉诺塔
- 渲染优化 lock unlock
- 数据结构 ——进出栈操作的算法
- SQL Server中JOIN的用法
- 123
- 简单剖析C语言中的位扩展问题
- C++ auto_ptr智能指针的用法
- 【Linux】文件结构
- linux 守护进程
- Linux下 配置Coovachilli 作为 Web认证Portal和网关
- NoSQL数据库笔谈