6_2.txt

来自「数据结构及算法经典 讲述数据结构的经典算法c源程序」· 文本 代码 · 共 61 行

TXT
61
字号
#include<stdio.h>
#define maxsize 100
typedef struct node{
  char data;
  struct node *lchild,*rchild;
 }bt;
typedef struct e{
  bt *p;
  int level;
 }elem;
typedef struct q{
  elem data[maxsize];
  int front,rear;
 }queue;

createbt(bt **T)
 {
  char ch;
  scanf("%c",&ch);
  if(ch==' ')*T=NULL;
   else{
   *T=(bt *)malloc(sizeof(bt));
   (*T)->data=ch;
   createbt(&((*T)->lchild));
   createbt(&((*T)->rchild));
   }
 }


leveltrav(bt *t)
{
 queue qu; bt *temp;int level=0;
 qu.front=0;
 qu.rear=0;
 qu.rear++;
  if(!t)return level;
  (qu.data[qu.rear]).p=t;
  (qu.data[qu.rear]).level=1;
  while(qu.front!=qu.rear){
   qu.front=(qu.front+1)%maxsize;
   temp=qu.data[qu.front].p;
   level=qu.data[qu.front].level;
   if(temp->lchild){
     qu.rear=(qu.rear+1)%maxsize;
     (qu.data[qu.rear]).p=temp->lchild;
      qu.data[qu.rear].level=level+1;
    }
    if(temp->rchild){
     qu.rear=(qu.rear+1)%maxsize;
     qu.data[qu.rear].p=temp->rchild;
     qu.data[qu.rear].level=level+1;
    }  
  } 
  return level;
}
main()
{
 bt *h;
 createbt(&h);
 printf("level=%d\n",leveltrav(h));
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?