数据结构实验指导书及答案(徐州工程学院)(4)

2019-08-31 15:10

{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; 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;

三、实验要求

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(\输入要做的操作:\flushall(); f=getchar();

if(f=='C')q=initqueue_hc(); else if(f=='N')

{cshqueue_hc(q);printqueue_hc(q);} else if(f=='I')

{printf(\输入要的入队的元素:\flushall();e=getchar();

enqeue_hc(q,e);printqueue_hc(q);} else if(f=='D')

{deqeue_hc(q);printqueue_hc(q);} }while(f!='E');

hc_sqqueue *initqueue_hc() {hc_sqqueue *q;

q=(hc_sqqueue*)malloc(sizeof(hc_sqqueue)); if(!q)exit(ERROR); return(q);}

int cshqueue_hc(hc_sqqueue *q) {char e;

int enqeue_hc(hc_sqqueue *q,char e);

q->base=(char*)malloc(MAXQSIZE*sizeof(char)); if(!q->base)exit(ERROR);

q->front=q->rear=0;q->length=0; printf(\输入元素以#结束:\\n\flushall(); e=getchar(); while(e!='#') {enqeue_hc(q,e);

if(q->length==MAXQSIZE)return(ERROR); else {flushall();e=getchar();}} return(OK);}

int enqeue_hc(hc_sqqueue *q,char e)

{if(q->length==MAXQSIZE)return(ERROR); q->base[q->rear]=e;

q->rear=(q->rear+1)%MAXQSIZE; q->length++; return(OK);}

int deqeue_hc(hc_sqqueue *q) {if(q->length==0)return (ERROR);

printf(\出队的元素为:%c\\n\q->front=(q->front+1)%MAXQSIZE;q->length--; return (OK);}

int printqueue_hc(hc_sqqueue *q) {int t=q->front;

if(q->length==0){printf(\队空!\\n\if(q->length==MAXQSIZE)printf(\队满!\\n\printf(\当前队列中元素为:\\n\do{printf(\

t=(t+1)%MAXQSIZE;}while(t!=q->rear); return(OK);}

实验六 二叉树建立及遍历操作

实验预备知识:

1.熟练指针进行数据访问。

2.掌握二叉树的存储结构和处理方法。 3.掌握二叉树三种遍历的算法。

一、实验目的

1.熟悉二叉树的存贮结构及遍历方式,掌握有关算法的实现。 2.能够利用二叉树解决具体问题。

二、实验环境

⒈ 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; ⒉ 软件:DOS或Windows操作系统+Turbo C;

三、实验要求

1.要求采用二叉链表作为存贮结构,完成二叉树的建立、先序、中序、和后序遍历的操作。其中先序遍历和后序遍历采用递归算法,中序遍历采用非递归算法。

2.输入数据:树中每个结点的数据类型设定为字符型。

四、实验内容

1.在自己的U盘的“姓名+学号”文件夹中创建“实验6”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。

2.实现如下二叉树处理函数。

建树子函数 先序遍历子函数 中序遍历子函数 后序遍历子函数

#include //头文件 #include typedef struct BiTNode {

char data;

struct BiTNode *lchild,*rchild; }

BiTNode,*BiTree;//定义结点类型 BiTree CreateBiTree()//创建树 {

char p;BiTree T; scanf(\ if(p==' ') T=NULL; else {

T=(BiTNode *)malloc(sizeof(BiTNode));//为结点开辟空间 T->data=p;

T->lchild=CreateBiTree(); T->rchild=CreateBiTree(); }

return (T); }

void PreOrder(BiTree T)//先序


数据结构实验指导书及答案(徐州工程学院)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:品德与社会毕业复习提纲(六下)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: