博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构 栈笔记
阅读量:4966 次
发布时间:2019-06-12

本文共 1888 字,大约阅读时间需要 6 分钟。

// 数据结构 栈的实现 C语言, 只能从头部储存和销毁数据# include 
# include
# include
// 线性储存部分typedef struct NONE{ int data; struct NONE * pNext;}None, * pNone;// 栈的头部和底部typedef struct stack{ pNone top; pNone bottom;}St, * pSt;// 创建一个空栈void Create_Stack(pSt stack);// 压栈void Push_Stack(pSt stack, int val);// 出栈, 返回出栈的那个节点的数据int Out_Stack(pSt stack);// 计算栈中数据个数int Compute_Stack(pSt stack);// 栈的遍历void Travel_Stack(pSt stack); int main(void){ St stack; Create_Stack(&stack); Push_Stack(&stack, 1); Push_Stack(&stack, 1); Push_Stack(&stack, 1); Push_Stack(&stack, 1); int cnt = Compute_Stack(&stack); printf("此时栈中共有%d个元素!\n", cnt); Out_Stack(&stack); cnt = Compute_Stack(&stack); printf("此时栈中共有%d个元素!\n", cnt); Travel_Stack(&stack); return 0;}void Create_Stack(pSt stack){ stack->top = (pNone)malloc(sizeof(None)); if (NULL == stack->top) { printf("动态内存分配失败!\n"); exit(-1); } else { stack->bottom = stack->top; stack->top->pNext = NULL; } return;}void Push_Stack(pSt stack, int val){ pNone pNew = (pNone)malloc(sizeof(None)); if (NULL == pNew) { printf("动态内存分配失败!\n"); exit(-1); } pNew->data = val; pNew->pNext = stack->top; stack->top = pNew; return;}int Out_Stack(pSt stack){ int val; pNone pOut; pOut = stack->top; val = pOut->data; stack->top = pOut->pNext; return val;}int Compute_Stack(pSt stack){ int cnt = 0; // 记录元素个数 pNone pTemp = stack->top; while (pTemp != stack->bottom) { ++cnt; pTemp = pTemp->pNext; } return cnt;}void Travel_Stack(pSt stack){ pNone pTemp = stack->top; while (pTemp != stack->bottom) { printf("%d\n", pTemp->data); pTemp = pTemp->pNext; } return;}

 

转载于:https://www.cnblogs.com/lnlin/p/6718341.html

你可能感兴趣的文章
前端 HTML标签属性
查看>>
glassfish的启动
查看>>
513. 找树左下角的值
查看>>
asp mvc 中重写JsonResult,解决Json返回值序列化问题
查看>>
微信开发-微信内置浏览器的Javascript API
查看>>
React学习之坑(二)- 基础入门
查看>>
JavaScript - flex布局测试案例【flex】主轴方向
查看>>
JAVA之nio
查看>>
洛谷P2858奶牛零食 题解
查看>>
ASP.NET Web API中把分页信息放Header中返回给前端
查看>>
codeforces571C. CNF 2
查看>>
Windows环境下的NodeJS+NPM+Bower安装配置
查看>>
[004]多维数组和指针
查看>>
MySQL 基础语句的练习
查看>>
unity2D物理引擎之-Rigidbody 2D
查看>>
Editing 2011-2012 ACM-ICPC Northeastern European Regional Contest (NEERC 11)
查看>>
VMware虚拟机安装CentOS 6.9图文教程
查看>>
Floyd 基础知识
查看>>
CSS笔记 - fgm练习 2-7 - 简易选项卡
查看>>
移动端提供各种实用工具
查看>>