//二叉樹的初始化操作。二叉樹的初始化須要將指向二叉樹的根結點指標置為空:void initbittree(bitree *t)//二叉樹的初始化操作
//二叉樹的銷毀操作。
假設二叉樹存在。將二叉樹儲存空間釋放:
void destroybittree(bitree *t)//銷毀二叉樹操作
}//建立二叉樹操作。
依據二叉樹的遞迴定義,先生成二叉樹的根結點。將元素值賦給結點的資料域,然後遞迴建立
//左子樹和右子樹。當中『#』表示空:
void creatbittree(bitree *t)//遞迴建立二叉樹
}//二叉樹的左插入操作。
指標p指向二叉樹t的某個結點,將子樹c插入到t中,使c成為p指向結點的左子樹
//,p指向結點的原來左子樹成為c的右子樹:
int insertleftchild(bitree p,bitree c)//二叉樹的左插入操作
return 0;
}//二叉樹的右插入操作。指標p指向二叉樹t的某個結點,將子樹c插入到t中,使c成為p指向結點的右子樹
//。p指向結點的原來右子樹成為c的右子樹:
int insertrightchild(bitree p,bitree c)//二叉樹的右插入操作
return 0;
}/*返回二叉樹結點的指標操作。在二叉樹中查詢指向元素值為e的結點。假設找到該結點,則將該結點的指標
返回,否則,返回null。
詳細實現:定義乙個佇列q,用來存放二叉樹中結點的指標。從根結點開始,推斷結點的值是否等於e,假設
相等,則返回該結點的指標;否則,將該結點的左孩子結點的指標和右孩子結點的指標入佇列。假設結點存在
左孩子結點,則將其左孩子的指標入佇列;假設結點存在右孩子結點,則將其右孩子的指標入佇列。然後將
隊頭的指標出佇列。推斷該指標指向的結點的元素值是否等於e。假設相等,則返回該結點的指標,否則,繼續
將結點的左孩子結點的指標和右孩子結點的指標入佇列。
反覆此操作,直到隊列為空。
*/bitree point(bitree t,datatype e)//查詢元素值為e的結點的指標
if(p->rchild)//假設右孩子結點存在,將右孩子指標入隊
}} return null;
} //返回二叉樹的結點的左孩子元素值操作。
假設元素值為e的結點存在。而且該結點的左孩子結點存在,則將
//該結點的左孩子結點的元素值返回。
datatype leftchild(bitree t,datatype e)//返回二叉樹的左孩子結點元素值操作
return;
}//返回二叉樹的結點的右孩子元素值操作。假設元素值為e的結點存在,而且該結點的右孩子結點存在,則將
//該結點的右孩子結點的元素值返回。
datatype rightchild(bitree t,datatype e)//返回二叉樹的右孩子結點元素值操作
return;
}//二叉樹的左刪除操作。在二叉樹中,指標p指向二叉樹中的某個結點。將p所指向的結點的左子樹刪除。假設刪除
//成功。返回1。否則返回0.
int deleteleftchild(bitree p)//二叉樹的左刪除操作
return 0;
}//二叉樹的右刪除操作。在二叉樹中。指標p指向二叉樹中的某個結點,將p所指向的結點的右子樹刪除。
假設刪除
//成功,返回1,否則返回0.
int deleterightchild(bitree p)//二叉樹的右刪除操作
return 0;
}
二叉樹 基本運算
一 括號表示法建二叉樹 核心 void make btree print b view code 二 查詢節點 核心 btnode find node btnode b1,char x 查詢節點數值等於x的節點 view code 三 求樹高 核心 int get high const btnode...
二叉樹的基本運算
今天資料結構實驗課,做實驗,二叉樹的基本運算,題目要求挺長的,上課坐著沒事幹,寫了一點,放這以後還能看看。呵呵 題目要求 問題描述 建立一棵二叉樹,試程式設計實現二叉樹的如下基本操作 1.按先序序列構造一棵二叉鍊錶表示的二叉樹t 2.對這棵二叉樹進行遍歷 先序 中序 後序以及層次遍歷,分別輸出結點的...
二叉樹的基本運算
編寫乙個程式實現二叉樹的基本功能 1 使用者輸入字串建立二叉樹,a b d,e h j,k l,m n c f,g i 2 1 實現二叉樹的各種遍歷。包括先序遍歷 中序遍歷 後序遍歷的歸和非遞迴演算法 以及層次遍歷。2 要求能查詢任一結點在某種遍歷序列中的前驅和後繼。3 查詢輸出從根結點a出發到任意...