1 / 22
文档名称:

数据结构一二次作业样稿.doc

格式:doc   大小:388KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构一二次作业样稿.doc

上传人:非学无以广才 2020/11/20 文件大小:388 KB

下载得到文件列表

数据结构一二次作业样稿.doc

文档介绍

文档介绍:上机题
(1)编写完整程序,用先序遍历法建立二叉树二叉链
表存放结构。输出该二叉树先、中、后序遍历结
点访问次序和层次遍历结点访问次序。(提议结
点数据域类型为char)
// : Defines the entry point for the console application.
//
#include ""
#include<>
#include<>
typedef struct node
{
char data;
struct node *lchild, *rchild;
}*BiT, BiTNode;
BiT crtBT()
{
char ch;
BiT bt;
ch=getchar();
if(ch=='#')
return NULL;
bt=new BiTNode();
bt->data=ch;
bt->lchild=crtBT();
bt->rchild=crtBT();
return bt;
}
void preorder(BiT bt)
{
if(bt)
{
printf("%c",bt->data);
preorder(bt->lchild);
preorder(bt->rchild);
}
//printf("\n");
}
void midorder(BiT bt)
{
if(bt)
{
midorder(bt->lchild);
printf("%c",bt->data);
midorder(bt->rchild);
}
//printf("\n");
}
void lasorder(BiT bt)
{
if(bt)
{
lasorder(bt->lchild);
lasorder(bt->rchild);
printf("%c",bt->data);
}
//printf("\n");
}
int main(int argc, char* argv[])
{
BiT bt;
bt=crtBT();
preorder(bt);
printf("\n");
midorder(bt);
printf("\n");
lasorder(bt);
printf("\n");
return 0;
}
(2)从键盘输入n个数据建立n元完全二叉树次序存放结
构。实现该完全二叉树先、中、后序遍历。
#include ""
#include<>
#include<>
void preorder(int j,int i,char *s)
{
if (j>i) return;
printf("%c",s[j]);
preorder(j*2+1,i,s);
preorder(j*2+2,i,s);
}
void midorder(int j,int i,char *s)
{
if (j>i) return;
preorder(j*2+1,i,s);
printf("%c",s[j]);
preorder(j*2+2,i,s);
}
void lasorder(int j,int i,char *s)
{
if (j>i) return;
preorder(j*2+1,i,s);
preorder(j*2+2,i,s);
printf("%c",s[j]);
}
int main(int argc, char* argv[])
{
int i=0;
char *bt;
char s[100];
scanf("%s",s);
bt=s;
while(s[i]!=0)
{

i++;
}
//printf("%d\n",i);
preorder(0,i,bt);
printf("\n");
midorder(0,i,bt);
p