数据结构实验指导书(2016)(4)
void push_hc(hc_sqstack *s); void pop_hc(hc_sqstack *s);
void printstack_hc(hc_sqstack *s); hc_sqstack *s; char f;
printf(\建立栈(C)\\n\printf(\初始化栈(N)\\n\printf(\入栈元素(I)\\n\printf(\出栈元素(D)\\n\printf(\退出(E)\\n\\n\do
{printf(\输入要做的操作:\flushall(); f=getchar();
if(f=='C')s=initstack_hc(); else if(f=='I')
{push_hc(s);printstack_hc(s);} else if(f=='N')
{cshstack_hc(s);printstack_hc(s);} else if(f=='D')
{pop_hc(s);printstack_hc(s);}
}while(f!='E');printf(\作者:黄晨\
hc_sqstack *initstack_hc() {hc_sqstack *s;
s=(hc_sqstack*)malloc(sizeof(hc_sqstack)); if(!s)exit(ERROR); return(s);}
void cshstack_hc(hc_sqstack *s) {char e;
s->base=(char*)malloc(STACK_INIT_SIZE*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base;
s->stacksize=STACK_INIT_SIZE; printf(\输入要栈的元素以#结束:\\n\flushall(); e=getchar(); while(e!='#')
{if(s->top-s->base>=s->stacksize)
{s->base=(char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;}
第13页 /共58页
*s->top++=e; flushall(); e=getchar();}}
void push_hc(hc_sqstack *s) {char e;
printf(\输入要入栈顶元素:\flushall(); e=getchar();
if(s->top-s->base>=s->stacksize)
{s->base=(char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;} *s->top++=e;}
void pop_hc(hc_sqstack *s)
{if(s->top==s->base) exit(ERROR);
printf(\出栈的元素为:%c\\n\
void printstack_hc(hc_sqstack *s) {char *t=s->top-1;
printf(\当前栈中元素为:\\n\while(t!=s->base) {printf(\printf(\
栈的操作 1、入栈
#include \#include \#include \#include \
#define STACK_INIT_SIZE 1 #define STACKINCREMENT 1 #define ERROR 0
typedef struct {char *base; char *top; int stacksize; }hc_sqstack;
第14页 /共58页
void main()
{hc_sqstack *initstack_hc(); void cshstack_hc(hc_sqstack *s); void push_hc(hc_sqstack *s);
void printstack_hc(hc_sqstack *s); hc_sqstack *s; char f;
printf(\建立栈(C)\\n\printf(\初始化栈(N)\\n\printf(\入栈元素(I)\\n\printf(\退出(E)\\n\\n\do
{printf(\输入要做的操作:\flushall(); f=getchar();
if(f=='C')s=initstack_hc(); else if(f=='I')
{push_hc(s);printstack_hc(s);} else if(f=='N')
{cshstack_hc(s);printstack_hc(s);} }while(f!='E');
hc_sqstack *initstack_hc() {hc_sqstack *s;
s=(hc_sqstack*)malloc(sizeof(hc_sqstack)); if(!s)exit(ERROR); return(s);}
void cshstack_hc(hc_sqstack *s) {char e;
s->base=(char*)malloc(STACK_INIT_SIZE*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base;
s->stacksize=STACK_INIT_SIZE; printf(\输入要栈的元素以#结束:\\n\flushall(); e=getchar(); while(e!='#')
{if(s->top-s->base>=s->stacksize)
{s->base=(char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;} *s->top++=e;
第15页 /共58页
flushall(); e=getchar();}}
void push_hc(hc_sqstack *s) {char e;
printf(\输入要入栈顶元素:\flushall(); e=getchar();
if(s->top-s->base>=s->stacksize)
{s->base=(char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;} *s->top++=e;}
void printstack_hc(hc_sqstack *s) {char *t=s->top-1;
printf(\当前栈中元素为:\\n\while(t!=s->base) {printf(\printf(\
实验五队列的基本操作
实验预备知识:
1.熟练运用线性结构进行数据处理,熟练使用指针进行数据访问。 2.掌握递归程序设计思想。
3.掌握堆栈和队列的应用背景与场合。 4.理解堆栈和队列的数据类型。
一、实验目的
1.掌握队列的抽象数据类型。 2.掌握队列的各种操作的算法。
3. 掌握队列的链式存贮结构及基本操作,深入了解链队列的基本特性,以便在实际问题背景下灵活运用它们。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; ⒉ 软件:DOS或Windows操作系统+Turbo C;
第16页 /共58页
三、实验要求
1.用C描述栈的每种操作在顺序栈或链栈上的实现。 2.用C描述每种操作在链队列上的实现。
3.将建队列、初始化队列、判断队列是否非空、求队列的长度、输出队列的元素分别定义为5个子函数,通过主函数实现对上述子函数的调用。
4. 输入数据:数据域(data)设定为整型。
四、实验内容
1.在自己的U盘的“姓名+学号”文件夹中创建“实验4”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
4.实现如下链队列处理函数。
建队列、初始化队列、判断队列是否非空、求队列的长度、输出队列的元素 #include \#include \#include \#include \#define MAXQSIZE 5 #define ERROR 0 #define OK 1
typedef struct {char *base; int front; int rear; int length; }hc_sqqueue;
void main()
{hc_sqqueue *initqueue_hc(); int cshqueue_hc(hc_sqqueue *q); int enqeue_hc(hc_sqqueue *q,char e); int deqeue_hc(hc_sqqueue *q); int printqueue_hc(hc_sqqueue *q); hc_sqqueue *q; char f,e;
printf(\建立队列(C)\\n\printf(\初始化队列(N)\\n\printf(\入队列元素(I)\\n\printf(\出队列元素(D)\\n\printf(\退出(E)\\n\\n\do
{printf(\输入要做的操作:\
第17页 /共58页
…… 此处隐藏:2314字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




