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

首頁 > 編程 > C > 正文

C語言實現線索二叉樹的定義與遍歷示例

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

本文實例講述了C語言實現線索二叉樹的定義與遍歷。分享給大家供大家參考,具體如下:

#include <stdio.h>#include <malloc.h>typedef char TElemType;// 二叉樹的二叉線索存儲表示typedef enum{ Link, Thread}PointerTag; // Link(0):指針,Thread(1):線索typedef struct BiThrNode{ TElemType data; struct BiThrNode *lchild,*rchild; // 左右孩子指針 PointerTag LTag,RTag; // 左右標志}BiThrNode,*BiThrTree;TElemType Nil = ' '; // 字符型以空格符為空BiThrTree pre; // 全局變量,始終指向剛剛訪問過的結點// 按先序輸入二叉線索樹中結點的值,構造二叉線索樹T// 空格(字符型)表示空結點int CreateBiThrTree(BiThrTree *T){ TElemType h; scanf("%c",&h); if(h==Nil) *T=NULL; else { *T=(BiThrTree)malloc(sizeof(BiThrNode)); if(!*T)  exit(0); (*T)->data=h; // 生成根結點(先序) CreateBiThrTree(&(*T)->lchild); // 遞歸構造左子樹 if((*T)->lchild) // 有左孩子  (*T)->LTag=Link; CreateBiThrTree(&(*T)->rchild); // 遞歸構造右子樹 if((*T)->rchild) // 有右孩子  (*T)->RTag=Link; } return 1;}// 算法6.7 P135// 中序遍歷進行中序線索化。void InThreading(BiThrTree p){ if(p) { InThreading(p->lchild); // 遞歸左子樹線索化 if(!p->lchild) // 沒有左孩子 {  p->LTag=Thread; // 前驅線索  p->lchild=pre; // 左孩子指針指向前驅 } if(!pre->rchild) // 前驅沒有右孩子 {  pre->RTag=Thread; // 后繼線索  pre->rchild=p; // 前驅右孩子指針指向后繼(當前結點p) } pre=p; // 保持pre指向p的前驅 InThreading(p->rchild); // 遞歸右子樹線索化 }}// 算法6.6 P134// 中序遍歷二叉樹T,并將其中序線索化,Thrt指向頭結點。int InOrderThreading(BiThrTree *Thrt,BiThrTree T){ *Thrt=(BiThrTree)malloc(sizeof(BiThrNode)); // 建頭結點 if(!*Thrt) exit(0); (*Thrt)->LTag=Link; //標志左孩子為指針 (*Thrt)->RTag=Thread; //標志右孩子為線索 (*Thrt)->rchild=*Thrt; // 右指針回指 if(!T) // 若二叉樹空,則左指針回指 (*Thrt)->lchild=*Thrt; else { (*Thrt)->lchild=T; //頭結點左指針指向樹的根 pre = *Thrt; InThreading(T); // 中序遍歷進行中序線索化 pre->RTag=Thread; // 最后一個結點線索化 pre->rchild=*Thrt; (*Thrt)->rchild=pre; } return 1;}// 算法6.5 P134// 中序遍歷二叉線索樹T(頭結點)的非遞歸算法。int InOrderTraverse_Thr(BiThrTree T,int(*Visit)(TElemType)){ BiThrTree p; p=T->lchild; // p指向根結點 while(p!=T) { // 空樹或遍歷結束時,p==T while(p->LTag==Link)  p=p->lchild; if(!Visit(p->data)) // 訪問其左子樹為空的結點  return 0; while(p->RTag==Thread&&p->rchild!=T) {  p=p->rchild;  Visit(p->data); // 訪問后繼結點  } p=p->rchild; } return 1;}int vi(TElemType c){ printf("%c ",c); return 1;}int main(){ BiThrTree H,T; printf("請按先序輸入二叉樹(如:ab三個空格,表示a為根結點," "b為左子樹的二叉樹)/n"); CreateBiThrTree(&T); // 按先序產生二叉樹 InOrderThreading(&H,T); // 中序遍歷,并中序線索化二叉樹 printf("中序遍歷(輸出)二叉線索樹:/n"); InOrderTraverse_Thr(H,vi); // 中序遍歷(輸出)二叉線索樹 printf("/n"); system("pause"); return 0;}

運行結果:

希望本文所述對大家C語言程序設計有所幫助。

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品最新地址| 久久亚洲精品视频| 日韩精品在线免费播放| 亚洲成人激情在线观看| 久久久久久久久久久久久久久久久久av| 久久久久久久激情视频| 国产亚洲一区二区精品| 国产人妖伪娘一区91| 精品一区二区三区四区在线| 欧美午夜片欧美片在线观看| 日本高清+成人网在线观看| 国产成+人+综合+亚洲欧洲| 欧美性极品xxxx做受| 欧美性猛xxx| 亚洲九九九在线观看| 欧美在线视频网站| 亚洲免费电影一区| 国产精品老女人视频| 久久人人爽人人爽人人片av高清| 成人h视频在线观看播放| 精品久久久久久久久久久| 亚洲视频网站在线观看| 国产偷国产偷亚洲清高网站| 欧美一级免费看| 国产精品视频一区二区三区四| 亚洲国产精品一区二区久| 亚洲自拍另类欧美丝袜| 992tv在线成人免费观看| 自拍偷拍免费精品| 国产欧美一区二区三区久久| 国产视频在线观看一区二区| 91性高湖久久久久久久久_久久99| 欧美巨猛xxxx猛交黑人97人| 久久精品99国产精品酒店日本| 日韩av理论片| 91精品国产乱码久久久久久蜜臀| 中文字幕精品久久久久| 国产欧美一区二区三区久久| 亚洲电影在线观看| 欧美一级淫片aaaaaaa视频| 久久久久久香蕉网| 日产精品99久久久久久| 国产日韩欧美夫妻视频在线观看| 精品国产一区二区三区在线观看| 一区二区欧美在线| 亚洲在线免费视频| 夜夜嗨av一区二区三区四区| 日韩精品中文字幕在线播放| 欧美最顶级丰满的aⅴ艳星| 欧美成人午夜免费视在线看片| 大胆人体色综合| 久久夜色精品国产欧美乱| 国产69精品久久久久9| 91精品久久久久久久久久另类| 国产91精品久久久久久久| 91精品久久久久久久| 久久夜精品va视频免费观看| 一区二区成人av| 精品美女国产在线| 成人国产精品久久久| 亚洲视频在线免费看| 久久视频这里只有精品| 亚洲欧美国产日韩中文字幕| 欧洲成人性视频| 国产一区二区在线免费| 欧美激情国产精品| 欧美成人免费全部观看天天性色| 国产伦精品一区二区三区精品视频| 精品偷拍各种wc美女嘘嘘| 亚洲欧美另类人妖| 91在线高清视频| 日韩欧美在线观看| 免费91麻豆精品国产自产在线观看| 久久精品91久久久久久再现| 欧美另类老女人| 欧美在线欧美在线| yellow中文字幕久久| 欧美俄罗斯性视频| 国产欧美精品va在线观看| 欧美电影电视剧在线观看| 欧美一区二三区| 精品视频偷偷看在线观看| 日本精品久久久久久久| 91牛牛免费视频| 91精品国产综合久久香蕉922| 国产91在线播放九色快色| 精品国产电影一区| 亚洲综合在线做性| 日韩av电影在线播放| 国产午夜精品久久久| 国产精品三级久久久久久电影| 97视频在线观看亚洲| 91精品免费久久久久久久久| 中文字幕免费精品一区| 久久精品美女视频网站| 日韩在线观看免费高清完整版| 午夜免费在线观看精品视频| 亚洲最新av在线网站| 欧美成人在线网站| 亚洲另类图片色| 成人在线观看视频网站| 狠狠色狠狠色综合日日小说| 久久精品国产成人| 亚洲精品自拍偷拍| 成人黄色在线免费| 国产精品三级久久久久久电影| 精品久久久久久久久久久久久| 91免费国产视频| 久久69精品久久久久久久电影好| 亚洲视频在线免费看| 精品伊人久久97| 视频一区视频二区国产精品| 91久久久久久久久久久久久| 久久久久久久网站| 亚洲国产高清福利视频| 国产不卡在线观看| 国产精品久久二区| 亚洲影影院av| 高清视频欧美一级| 欧美视频一区二区三区…| 国产香蕉97碰碰久久人人| 欧美日韩午夜视频在线观看| 欧美色视频日本版| 成人黄色激情网| 国产成人精品综合久久久| 日韩av一区二区在线观看| 久久男人av资源网站| 伊人久久免费视频| 亚洲激情久久久| 欧美激情第1页| 欧美肥臀大乳一区二区免费视频| 亚洲**2019国产| 欧美视频免费在线| 亚洲精品第一国产综合精品| 色黄久久久久久| 91影视免费在线观看| 欧美国产日韩xxxxx| 91丝袜美腿美女视频网站| 久久精品国产视频| 亚洲二区中文字幕| 这里只有精品久久| 中文字幕国产精品| 欧美激情亚洲综合一区| 日韩在线视频线视频免费网站| 美女少妇精品视频| 欧美精品一二区| 亚洲欧美综合另类中字| 永久免费看mv网站入口亚洲| 91精品国产91久久久久久不卡| 自拍视频国产精品| 日韩在线观看免费全集电视剧网站| 亚洲欧洲视频在线| 午夜精品一区二区三区在线视| 精品久久久久久亚洲国产300| 亚洲精品美女久久久久| 精品电影在线观看| 亚洲激情国产精品| 成人免费网站在线看| 成人亚洲综合色就1024| 美日韩精品视频免费看| 欧美丝袜美女中出在线| 欧美一区二区三区免费观看| 亚洲国产精品字幕| 精品久久久久久久久久久久|