(c语言)用链栈表的方式实现输入abcde,输出edcba操作——期末数据结构程序设计
用链栈表的方式实现输入abcde,输出edcba操作,期末数据结构程序设计
文章目录
- 用链栈表的方式实现输入abcde,输出edcba操作,期末数据结构程序设计
- 1.链栈的定义
- 2.链栈的初始化
- 3.链栈的销毁
- 4.判空操作
- 5.进栈
- 6.出栈
- 7.读取栈顶元素
- 源代码:
- 运行结果展示:
- 互关噢!共同学习进步
1.链栈的定义
typedef struct LNode {ElemType data;struct LNode* next;
}LNode,*LinkList;
2.链栈的初始化
void InitStack(LinkList& S) {S = (LNode*)malloc(sizeof(LNode));S->next = NULL;
}
3.链栈的销毁
void DestroyStack(LinkList& S) {LNode* p = S->next;while (p != NULL) {free(S);S = p;p = p->next;}free(S);
}
4.判空操作
bool StackEmpty(LinkList S) {return (S->next == NULL) ? true : false;
}
5.进栈
bool Push(LinkList& S,ElemType x) {LNode* p;p = (LNode*)malloc(sizeof(LNode));p->data = x;p->next = S->next;S->next = p;return true;
}
6.出栈
bool Pop(LinkList& S, ElemType& x) {if (S->next == NULL)return false;LNode* p;p = S->next;x = p->data;S->next = p->next;free(p);return true;
}
7.读取栈顶元素
bool GetTop(LinkList S, ElemType& x) {if (S->next == NULL)return false;x = S->next->data;return true;
}
源代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define length 5
typedef char ElemType;
//链栈的定义
typedef struct LNode {ElemType data;struct LNode* next;
}LNode,*LinkList;
//链栈的初始化
void InitStack(LinkList& S) {S = (LNode*)malloc(sizeof(LNode));S->next = NULL;
}
//链栈的销毁
void DestroyStack(LinkList& S) {LNode* p = S->next;while (p != NULL) {free(S);S = p;p = p->next;}free(S);
}
//判空操作
bool StackEmpty(LinkList S) {return (S->next == NULL) ? true : false;
}
//进栈
bool Push(LinkList& S,ElemType x) {LNode* p;p = (LNode*)malloc(sizeof(LNode));p->data = x;p->next = S->next;S->next = p;return true;
}
//出栈
bool Pop(LinkList& S, ElemType& x) {if (S->next == NULL)return false;LNode* p;p = S->next;x = p->data;S->next = p->next;free(p);return true;
}
//读取栈顶元素
bool GetTop(LinkList S, ElemType& x) {if (S->next == NULL)return false;x = S->next->data;return true;
}
int main() {ElemType x;LinkList S;char ch\[length\];int i=0;printf("1.初始化栈\n");InitStack(S);printf("2.栈为:%s\n", (StackEmpty) ? "空" : "非空");printf("3.请依次输入入栈元素:\n");for (int j = 0; j < length; j++) {scanf("%c", &ch\[j\]); //scanf遇到回车才会结束,遇到空格不会结束}while (i < length) {Push(S, ch\[i\]);i++;}printf("4.元素出栈顺序为:\n");while (!StackEmpty(S)) {Pop(S, x);printf("%c\t", x);}printf("\n");printf("5.销毁栈表!");DestroyStack(S);
}
运行结果展示:
输入:abcde
输出:edcba
互关噢!共同学习进步
文章目录
- 用链栈表的方式实现输入abcde,输出edcba操作,期末数据结构程序设计
- 1.链栈的定义
- 2.链栈的初始化
- 3.链栈的销毁
- 4.判空操作
- 5.进栈
- 6.出栈
- 7.读取栈顶元素
- 源代码:
- 运行结果展示:
- 互关噢!共同学习进步
(c语言)用链栈表的方式实现输入abcde,输出edcba操作——期末数据结构程序设计相关推荐
- (c语言数据结构)用链式队列的方式实现输入12345,输出12345操作——期末数据结构程序设计
用链式队列的方式实现输入12345,输出12345操作 文章目录 用链式队列的方式实现输入12345,输出12345操作 1.队列的定义 2.队列的初始化 3.判空操作 4.入队操作 5.出队操作 6 ...
- (c语言数据结构)用顺序队列的方式实现输入12345,输出12345操作——期末数据结构程序设计
用顺序队列的方式实现输入123456,输出12345操作 文章目录 用顺序队列的方式实现输入123456,输出12345操作 1.队列的定义 2.队列的初始化 3.判空操作 4.入队操作 5. 出队操 ...
- c语言isempty函数代码,使用C语言实现链栈以及initialize,push,pop,isEmpty,getlength,destory等操作...
本文使用了链栈,相对于顺序栈,链栈具有通常情况下不会出现栈满的情况 链栈和链表很相似. 由于栈的先进后出特性,栈在很多地方都很适用,比如 括号匹配,算术表达式求职,路径判断(走迷宫游戏)高级点的有函数 ...
- 刁肥宅手笔:纯C语言利用链栈实现从后缀表达式Array中顺序输入表达式并求值
链栈+后缀表达式求值算法,借用我自己上次C语言写的链栈,详细实现代码如下: 头文件C_Stack.h: /*C_Stack.h*/#ifndef C_STACK_H_INCLUDED #define ...
- 使用C语言实现链栈(带头结点和不带头结点)
目录 1.链栈 2.链栈的相关操作 (1)数据结构定义 (2)初始化和销毁 (3)入栈 (4)出栈 (5)主函数 (6)测试 1.链栈 链栈和单链表是差不多的,只是规定了入栈和出栈只能在表头一端进行( ...
- 数据结构(C语言版)——链栈(代码版)
一.代码 #include <stdio.h> #include <stdlib.h>#define OK 1 #define ERROR 0typedef int Statu ...
- C语言注释风格(函数、功能、输入、输出、返回)
C语言编程规范-注释 规则: 1:一般情况下,源程序有效注释量必须在20%以上. 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确.易懂. ...
- Lua语言面向对象之复制表的方式面向对象
// clone表table function clone(tab)-- 构造一个空tablelocal ins = {}for key, var in pairs(tab) doins[key] = ...
- printf输出字符串_C语言入门必学第一课,学习“输入与输出”!
数据输入 编写程序的主要目的就是为了处理数据.数据从哪里来?数据的来源有很多种方式,如从磁盘文件中读取数据.从数据库中读取数据.从网页中抓取数据等,还有一种原始的方式就是从键盘输入数据. 在C语言中, ...
最新文章
- 前苹果副总裁:20-40-60法则
- 基于c#的相关性分析_开源Math.NET基础数学类库使用(11)C#计算相关系数
- Ubuntu 18.04 固定ip 设置方法
- gVIM+zencoding快速开发HTML/CSS/JS(适用WEB前端)
- 远程图片保存到服务器 php,保存远程图片到本地服务器几种方法[php,asp]网
- php mysql insert 变量,php – 在blueimp / jquery-file-upload上添加更多自定义变量给mysql insert...
- .NET Core中的CSV解析库
- 字符串编辑距离(转载)
- android动态设置文本居中显示图片,Android DrawableTextView图片文字居中显示实例
- python filter函数_python基础——filter函数
- 吴恩达 深度学习 编程作业(1-3)- Planar data classification with one hidden layer(平面花形状)
- MIT研发“读心机”:不开口也能对话,人生开挂全靠它
- undefined reference to symbol 'dlsym@@GLIBC_2.17' libdl.so: error adding symbols: DSO missing from c
- 恭喜你!看到了这篇靠谱的12款CAM软件测评(下篇)
- centos7搭建apache服务器
- asp医院病历管理系统
- wordpress 更改域名搬家全攻略(转)
- EVA4400存储虚拟机+数据库数据恢复成功案例
- SOA精华的内容和实用的知识
- 基于PHP+小程序(MINA框架)+Mysql数据库的共享充电桩小程序系统设计与实现
热门文章
- iOS Swift 应用内跳转第三方地图导航路线 及地图坐标系转换
- 中国电信携手三星,心系天下三星W2019打造风范之作
- 蓝桥杯Java——算法训练(ALGO997-1007)
- nginx: [alert] could not open error log file: open() /usr/local/var/log/nginx/error.log
- (菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)...
- php一个猴子摘桃子,猴子摘桃子看图写话
- html从入门到精通前锋,战术干货 | 从入门到精通,支点中锋-锋线球员搭配个人向深度解析!下篇...
- 三星、LG等部分手机调用相机拍照的模糊问题和拍照选取相册图片旋转问题
- Java 实现四则运算 附实现代码
- MySQL 的create table as 与like 的使用