⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 树.c

📁 1.建立一个抽象数据类型的二叉树演示程序
💻 C
字号:
#include <stdio.h> 
#include <stdlib.h>
#include<malloc.h>
typedef struct node { int data; 
       struct node *lchild; 
       struct node *rchild; 
      }Tree; 

Tree* Creat()                     
{ Tree *p; 
  int num;
  scanf("%d",&num);
  if(num==0) p=NULL;
 else
 {
  p=(Tree *)malloc(sizeof(Tree)); 
  p->data=num;  
  p->lchild=Creat(); 
  p->rchild=Creat();
  }
 return p;
}

void PreOrder(Tree *root)                    
{ Tree *p; 
  p=root; 
  if(p)
  { printf("%3d",p->data); 
    PreOrder(p->lchild); 
    PreOrder(p->rchild); 
  } 
} 


int Number(Tree * p) 
{ if( p == NULL) 
return 0; 
{ return 1+Number(p->lchild) + Number(p->rchild);} 
} 

int Depth(Tree *p)
{int left,right,depth;
if(p==NULL)
return 0;
else
{left=Depth(p->lchild);
 right=Depth(p->rchild);
 depth=1+(left>right?left:right);
}
return depth;
}

void main() 
{ Tree *ROOT; 
  int m,n;
  printf("输入数据:");
  ROOT=Creat(); 
  printf("\n先序遍历:\n"); 
  PreOrder(ROOT);
  m=Number(ROOT);
  n=Depth(ROOT);
  printf("\n叶节点数为%d个,深度为%d个\n",m,n);
 }

⌨️ 快捷键说明

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