数据结构实验报告(全)安工大(5)

2019-01-10 14:52

printf(\请输入要转化的进制r:\scanf(\X=int(n); Y=n-X;

printf(\转化的r进制数为:\Convert1(S,X,r); printf(\

Convert2(Q,Y,r); getchar(); }

int main() {

PLinkStack S; PLinkQueue Q; Change(S,Q); return 0; }

心得体会:通过本次实验我基本掌握了栈、队列的两类存储结构(顺序存储结构和链式存储结构)的描述方法。掌握在不同结构中实现基本操作的基本方法。掌握在两种结构中实现查找、插入、删除操作的基本方法,通过运用队列和堆栈,实现了数制转换问题,实验中主要是要注意链式和顺序的基本操作的运用,有些地方是有区别的,要注意这方面的使用。

实验三二叉树的遍历

试编写程序:

(1)建立下面这样一棵二叉树 A B C D E F G H

(2)后序遍历这棵二叉树 (3)按层次遍历

(4)求叶子数和深度。 #include \#include \

typedef char Datatype; #define MAXSIZE 100 typedef struct bnode { Datatype data; struct bnode *lchild,*rchild; }BNode,*BTree; typedef struct{ BTree data[MAXSIZE]; int front,rear;

}seqqueue,*Pseqqueue; typedef struct{ BNode *node; int flag; }Data;

typedef struct node { Data Data[MAXSIZE]; int top;

}SeqStack,*PSeqStack; PSeqStack Init(void) { PSeqStack S; S=((PSeqStack)malloc(sizeof(SeqStack))); if(S) {

S->top=-1; return S; } }

int Empty(PSeqStack S) { if(S->top==-1) return 1; else return 0; }

int Push(PSeqStack S,Data x) { if(S->top==MAXSIZE-1) return 0; else { S->top++; S->Data[S->top]=x; return 1; } }

int Pop(PSeqStack S,Data *x) { if(Empty(S)) return 0; else { *x=S->Data[S->top]; S->top--; return 1; } }

//栈的基本操作

Pseqqueue init_seqqueue(void) {

Pseqqueue Q;

Q=(Pseqqueue)malloc(sizeof(seqqueue)); if(Q) {

Q->front=0; Q->rear=0; }

return Q;

}//初始化队列

int empty_seqqueue(Pseqqueue Q) {

if(Q&&Q->rear==Q->front) return 1; else return 0;

}//判断队是否为空

int in_seqqueue(Pseqqueue Q,BTree x) {

if((Q->rear+1)%MAXSIZE==Q->front) {

printf(\队满\return -1; } else {

Q->rear=(Q->rear+1)%MAXSIZE; Q->data[Q->rear]=x; return 0; }

}//入队

int out_seqqueue(Pseqqueue Q,BTree *x) {

if(empty_seqqueue(Q)) {

printf(\队空\return 0; } else {

Q->front=(Q->front+1)%MAXSIZE; *x=Q->data[Q->front]; return 1; }

}//出队

void destory_seqqueue(Pseqqueue *Q) {

if(*Q) free(*Q); *Q=NULL; }//销毁队列

void PreOrder(BTree t)

{ if(t) { printf(\ PreOrder(t->lchild); PreOrder(t->rchild); } }

/*void PreOrder1(BTree t) { PSeqStack S; BTree p=t; S=Init(); while(p||!Empty(S)) { if(p) { printf(\ Push(S,p); p=p->lchild; } else { Pop(S,&p); p=p->rchild; } } }

void InOrder1(BTree t) { PSeqStack S; BTree p=t; S=Init(); while(p||!Empty(S)) { if(p) { Push(S,p); p=p->lchild; } else { Pop(S,&p); printf(\


数据结构实验报告(全)安工大(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:在全国两会期间信访稳定工作会议上的讲话

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

马上注册会员

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