文档介绍:上机题
(1)编写完整程序,用先序遍历法建立二叉树的二叉链
、中、后序遍历结
点访问次序以及层次遍历结点访问次序。(建议结
点数据域类型为char)
// : Defines the entry point for the console //ﻫﻫ#include ”stdafx。h”ﻫ#include<stdio.h>ﻫ#include〈stdlib.h〉ﻫ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 "stdafx。h”
#include<stdio。h〉
#include<stdlib。h>
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);
printf("\n");
ﻩlasorder(0,i,bt);
ﻩprintf("\n”);
return 0