教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

数据结构实验指导书(2016)(4)

来源:网络收集 时间:2026-05-26
导读: 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(\出栈元素(

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字,全部文档内容请下载后查看。喜欢就下载吧 ……
数据结构实验指导书(2016)(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/447495.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)