第九章第十七题(赶出来的作业) powerby ktl

原创 2006年05月30日 21:49:00

//第九章第17题;用非递归算法设计先序遍历二叉树;
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define N 15   //需要设置栈的最大值,若二叉树深度为四,则设置2^4-1=15;
#define maxsize 15  //本程序根据书本p194,图9-8,输入数据为ABCDEFG@@@@L@@@#,输出为先序排列:ABDECFLG;

typedef char datatype;

typedef struct node
{
 datatype data;
 struct node *lchild,*rchild;
}bitree;

bitree *root;

bitree * CreatTree(void)
{
 char ch;
 bitree * Q[maxsize];
 int front,rear;
 bitree *root,*s;
 root=NULL;
 front=1;
 rear=0;
 printf("请输入字符构造二叉树,#结束,@表示虚结点./n");
 while((ch=getche())!='#')
 {
  s=NULL;
  if(ch!='@')
  {
   s=(bitree*)malloc(sizeof(bitree));
   s->data=ch;
   s->lchild=NULL;
   s->rchild=NULL;
  }
  rear++;
  Q[rear]=s;
  if(rear==1)
   root=s;
  else
  {
   if(s&&Q[front])
    if(rear%2==0)
     Q[front]->lchild=s;
    else
     Q[front]->rchild=s;
    if(rear%2==1)
     front++;
  }
 }
 printf("创建二叉树完成.../n");
 return root;
}
bitree *stack[N];
void preorder(bitree*p)
{
 printf("本函数实现的是先序非递归排列./n");
 bitree *s;
 int top;
 if(p!=NULL)
 {
  top=-1;
  s=p;
  while((top!=-1)||(s!=NULL))
  {
   while(s!=NULL)
   {
    if(top==N-1)
    {
     printf("上溢/n");
     return;
    }
    else
    {
     top++;
     printf("%c",s->data);  //与中序不同在于printf的位置要在进行左子树遍历之前;
     stack[top]=s;
     s=s->lchild;
    }
   }
   s=stack[top];
   top--;
  // printf("%c",s->data);原来中序遍历的时候printf的位置;
   s=s->rchild;
  // printf("%c",s->data);加在这为后序遍历;
  }
 }
 return;
}

int main()
{
 root=CreatTree();
 preorder(root);
 return 0;
}

第九章第14题(赶出来的作业) POWERBY KTL

//第九章第14题;//假设十个符号为ABCDEFGHIJ,权值为8,21,37,24,6,18,23,41,56,14;//输入权值:8回车;//输入数据:A(不用回车);//输入十个权值和数据后,...
  • spritsq
  • spritsq
  • 2006年05月30日 22:03
  • 770

第就章第21题(赶出来的作业) POWERBY KTL

//第九章第21题,交换左右子树;//输入参考书本p194,图9-8,输入为ABCDEFG@@@@L@@@#;中序遍历结果应该为DBEALFCG;//交换左右子树后进行中序遍历的结果应为:GCFLAE...
  • spritsq
  • spritsq
  • 2006年05月30日 22:33
  • 412

第十章第十六题 POWERBY KTL

//16.利用图的深度优先搜索和广度优先搜索各写一个算法,//辨别以邻接表方式表示的有向图中是否存在由顶点Vi到顶点Vj的路径(i!=j).//深度优先(第一个函数Route)//广度优先(第二个函数...
  • spritsq
  • spritsq
  • 2006年06月09日 01:32
  • 619

HTML第九章

开心网——网页游戏 首页 注册 | 登录 | 帮助 | 更多 侠客世界 征战四方 龙将 弹弹堂 ...
  • qq_36074064
  • qq_36074064
  • 2016年10月23日 17:12
  • 349

深入理解计算机系统(第二版) 家庭作业 第九章

9.11 A.虚拟地址0x027c 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 ...
  • zhanyu1990
  • zhanyu1990
  • 2014年01月19日 13:26
  • 2649

第十五题用拉链法实现散列表 POWERBY KTL

/*15.编写对一组关键字,利用链地址法解决冲突,散列函数为H(k),写出在此散列表中插入、删除元素的算法。程序输入 参考书本p269 其中除留余数p为6 拉链长度M为6 关键字长度N为6输入72 3...
  • spritsq
  • spritsq
  • 2006年06月12日 17:41
  • 1281

机器学习-学习笔记 学习总结归纳(第十一周)

总结归纳假设空间归纳从特殊到一般的“泛化”过程, 即从具体的事实归结出一般性规律。演绎从一般到特殊的“特化”过程, 即从基础原理推演出具体状况。归纳学习(概念学习(概念形成))记住训练样本, 就是所谓...
  • linglian0522
  • linglian0522
  • 2017年08月24日 17:12
  • 195

第十七题

#include #include int main() {   int i,k,n,j=0;  printf("请输入n:\n");  scanf("%d",&n);  printf("...
  • hxy2846904499
  • hxy2846904499
  • 2015年04月07日 23:25
  • 137

思科CCNA第一学期第九章答案

1   将二进制数字 10111010 转换为等值的十六进制数字。请从下面选择正确的答案。 85 90 B...
  • u014253173
  • u014253173
  • 2015年01月02日 23:39
  • 3270

Prim算法生成最小树 Powerby KTL

#include "stdio.h"#define n 6typedef struct{ int fromvex,endvex; float length;}edge;edge T[n-1];floa...
  • spritsq
  • spritsq
  • 2006年06月09日 15:42
  • 1047
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第九章第十七题(赶出来的作业) powerby ktl
举报原因:
原因补充:

(最多只允许输入30个字)