亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言 二叉樹的鏈式存儲實例

2020-01-26 14:30:59
字體:
來源:轉載
供稿:網友

二叉樹的鏈式存儲

實現二叉樹的基本操作:建立、遍歷、計算深度、結點數、葉子數等。

輸入C,先序創建二叉樹,#表示空節點;

輸入H:計算二叉樹的高度;

輸入L:計算二叉樹的葉子個數;

輸入N:計算二叉樹節點總個數;

輸入1:先序遍歷二叉樹;

輸入2:中序遍歷二叉樹;

輸入3:后續遍歷二叉樹;

輸入F:查找值=x的節點的個數;

輸入P:以縮格文本形式輸出所有節點。

很簡單就不需要多解釋了,代碼貼上

#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;/*二叉樹的鏈式存儲表示*/typedef char DataType; /*應由用戶定義DataType的實際類型*/typedef struct node{ DataType data; node *lchild, *rchild; /*左右孩子指針*/} BinTNode;   /*結點類型*/typedef BinTNode *BinTree;int sum=0;void DisplayBinTree(BinTree T); /*用格文本形式表示二叉樹*/void CreateBinTree(BinTree *T); /*構造二叉鏈表*/void Preorder(BinTree T); /*前序遍歷二叉樹*/void Inorder(BinTree T); /*中序遍歷二叉樹*/void Postorder(BinTree T); /*后序遍歷二叉樹*/int nodes(BinTree T);  /*計算總結點數*/int leafs(BinTree T);  /*計算總葉子數*/int hight(BinTree T);  /*計算二叉樹的高度*/int find(BinTree T,char x); //查找值=x的節點的個數;int main(){ BinTree T; char flg; while(cin>>flg) switch(flg) { case'C':  getchar();  CreateBinTree(&T);  cout<<"Created success!"<<endl;  break; case'H':  cout<<"Height="<<hight(T)<<"."<<endl;  break; case'L':  cout<<"Leaf="<<leafs(T)<<"."<<endl;  break; case'N':  cout<<"Nodes="<<nodes(T)<<"."<<endl;  break; case'1':  printf("Preorder is:");  Preorder(T);  cout<<"."<<endl;  break; case'2':  printf("Inorder is:");  Inorder(T);  cout<<"."<<endl;  break; case'3':  printf("Postorder is:");  Postorder(T);  cout<<"."<<endl;  break; case'F':  char x;  int ko;  getchar();  cin>>x;  ko=find(T,x);  cout<<"The count of "<<x<<" is "<<ko<<"."<<endl;  break; case'P':  cout<<"The tree is:"<<endl;  DisplayBinTree(T);  break; default:  cout<<"輸入有誤,請重新輸入"<<endl; }}/*構造二叉鏈表*/void CreateBinTree(BinTree *T){ char ch; if ((ch=getchar())=='#') *T=NULL; else { /*讀入非空格*/ *T=(BinTNode *)malloc(sizeof(BinTNode));/*生成結點*/ (*T)->data=ch; CreateBinTree(&(*T)->lchild );  /*構造左子樹*/ CreateBinTree(&(*T)->rchild );  /*構造右子樹*/ }}/*用縮格文本形式表示二叉樹*/void DisplayBinTree(BinTree T){ BinTree stack[100],p; int level[100],top,n,i; if (T) { top=1; stack[top]=T; level[top]=0; while(top>0) {  p=stack[top];  n=level[top];  for (i=1; i<=n; i++)  cout<<" ";  printf("%c/n",p->data);  top--;  if (p->rchild!=NULL)  {  top++;  stack[top]=p->rchild;  level[top]=n+2;  }  if (p->lchild!=NULL)  {  top++;  stack[top]=p->lchild;  level[top]=n+2;  } } }}/*計算總結點數*/int nodes(BinTree T){ if(T) { if( (T->lchild==NULL)&&(T->rchild==NULL))  return 1; else  return nodes(T->lchild)+nodes(T->rchild)+1; } return 0;}/*計算總葉子數*/int leafs(BinTree T){ if(T) { if ((T->lchild==NULL)&&(T->rchild==NULL))  return 1; else  return leafs(T->lchild)+leafs(T->rchild); } return 0;}/*計算樹的高度*/int hight(BinTree T){ if(T) { if ((T->lchild==NULL)&&(T->rchild==NULL))  return 1; else if((T->lchild==NULL)&&(T->rchild))  return 1+hight(T->rchild); else if((T->lchild)&&(T->rchild==NULL))  return 1+hight(T->lchild); else  return hight(T->lchild)+hight(T->rchild); } return 0;}/*前序遍歷二叉樹*/void Preorder(BinTree T){ if(T) { printf("%c ",T->data); /*訪問結點*/ Preorder(T->lchild); Preorder(T->rchild); }}/*中序遍歷二叉樹*/void Inorder(BinTree T){ if(T) { Inorder(T->lchild); printf("%C ",T->data); Inorder(T->rchild); }}/*后序遍歷二叉樹*/void Postorder(BinTree T){ if(T) { Postorder(T->lchild); Postorder(T->rchild); printf("%C ",T->data); }}int find(BinTree T,char x){ if(T) { if((T->data)==x)  sum++; find(T->lchild,x); find(T->rchild,x); } return sum;}

以上就是二叉樹鏈式存儲的一個小實例,需學習要的同學請參考,謝謝支持

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情国产日韩精品一区18| 亚洲韩国日本中文字幕| 国产日韩亚洲欧美| 91久久精品视频| 亚洲国产私拍精品国模在线观看| 欧美精品免费看| 国产成人精品在线视频| 亚洲午夜色婷婷在线| 日韩av在线免费播放| 国产精品日韩欧美综合| 亚洲国产精品久久| 中文字幕精品一区二区精品| 亚洲午夜av久久乱码| 欧美激情精品久久久久久黑人| 久久久精品国产一区二区| 国产精品久久久久久久久久尿| 亚洲精品永久免费精品| 国产精品视频精品| 欧美一级大胆视频| 亚洲激情在线观看视频免费| 亚洲色图国产精品| 九九热99久久久国产盗摄| 久久成人精品电影| 久久久精品一区二区| 亚洲电影免费观看高清完整版在线观看| 亚洲嫩模很污视频| 欧美日韩国产va另类| 国产精品久在线观看| 久久影视电视剧免费网站清宫辞电视| 在线成人中文字幕| 欧美精品video| 亚洲欧美日本精品| 亚洲品质视频自拍网| 国内精品久久久久久久| 亚洲国产美女精品久久久久∴| 亚洲深夜福利网站| 久久免费国产精品1| 亚洲国产婷婷香蕉久久久久久| 亚洲激情在线观看| 日韩不卡中文字幕| 欧洲亚洲在线视频| 久久久精品美女| 国产精品一区二区三区成人| 国产香蕉97碰碰久久人人| 91啪国产在线| 欧美一级大片视频| 亚洲色图13p| 久久久久久久久久亚洲| 中文国产亚洲喷潮| 日韩精品在线私人| 日韩在线视频中文字幕| 亚洲国产欧美在线成人app| 中日韩美女免费视频网址在线观看| 国产精品综合久久久| 日韩最新av在线| 国产精品国模在线| 日产精品99久久久久久| 一本色道久久综合亚洲精品小说| 国产99久久精品一区二区 夜夜躁日日躁| 久久91亚洲精品中文字幕| 亚洲欧美资源在线| 911国产网站尤物在线观看| 国产精自产拍久久久久久蜜| 日韩欧美福利视频| 91久久国产精品91久久性色| 国产精品1234| 国产欧美中文字幕| 欧美激情综合亚洲一二区| 伊人伊成久久人综合网小说| 久久综合五月天| 亚洲欧美制服中文字幕| 欧美一区二区三区图| 亚洲三级黄色在线观看| 亚洲毛片在线免费观看| 不卡av在线播放| 日韩电影第一页| 国产97在线观看| 国产成人精品视| 国产精品久久久久久久久久新婚| 精品少妇v888av| 欧美插天视频在线播放| 国产精品成人久久久久| 亚洲人成电影网站| 亚洲字幕一区二区| 亚洲欧美在线免费观看| 亚洲国产精品字幕| 欧美限制级电影在线观看| 精品电影在线观看| 国产91精品久久久久| 色综合影院在线| 成人免费激情视频| 91久久久久久| 欧美综合在线观看| 色综合久久久888| 亚洲国产日韩精品在线| 国产精品久久视频| 欧美激情精品久久久久久大尺度| 亚洲第一精品福利| 91性高湖久久久久久久久_久久99| 精品国产乱码久久久久久婷婷| 欧美夫妻性视频| 亚洲精品456在线播放狼人| 亚洲尤物视频网| 亚洲人在线视频| 亚洲色图35p| 中文字幕国产亚洲2019| 热门国产精品亚洲第一区在线| 日韩国产中文字幕| 日韩激情第一页| 日韩在线观看免费| 久久人人爽人人爽人人片av高请| 97成人精品区在线播放| 欧美日韩成人在线观看| 亚洲精品一区在线观看香蕉| 色偷偷噜噜噜亚洲男人| 国产一区二区黑人欧美xxxx| 亚洲欧美中文日韩v在线观看| 久久久国产精彩视频美女艺术照福利| 日本一本a高清免费不卡| 欧美精品福利在线| 国产美女91呻吟求| 国产日韩欧美在线| 91精品视频免费| 久久久久久国产精品久久| 亚洲精品国产精品国产自| 久久精品精品电影网| 国产91色在线| 亚洲免费av电影| 国产不卡在线观看| 国产精品入口免费视频一| 欧美日韩一区二区三区在线免费观看| 日韩精品福利网站| 国产精品视频自拍| 国产欧美va欧美va香蕉在线| 97久久精品国产| 亚洲天堂免费视频| 久久精品成人欧美大片| 色狠狠av一区二区三区香蕉蜜桃| 中文字幕欧美精品日韩中文字幕| 久久精品影视伊人网| 国产精品亚洲美女av网站| 亚洲第一色在线| 国产suv精品一区二区三区88区| 国产精品一区二区三区毛片淫片| 久久久久久久久久av| 欧美美女18p| 国产精品久久久久国产a级| 精品美女久久久久久免费| 亚洲伊人一本大道中文字幕| 欧美国产日韩视频| xxxx欧美18另类的高清| 亚洲国产一区二区三区在线观看| 日本免费在线精品| 国产亚洲美女精品久久久| 亚洲综合大片69999| 亚洲日本aⅴ片在线观看香蕉| 97视频在线观看免费| 亚洲精品国产品国语在线| 国产精品一区二区三| 亚洲视频在线观看视频| 久久精品成人一区二区三区| 成人444kkkk在线观看| 国产精品亚洲第一区| 国产精品aaa|