freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設計百度文檔-展示頁

2024-10-16 18:08本頁面
  

【正文】 ){ t=childrchild。else if(childltag==1amp。amp。printf(“l(fā)tag=%d,rtag=%dn”,childltag,childrtag)。} if(child!=t){ pre=SearchPre(t,child)。if(NULL==child){ printf(“沒有找到結(jié)點:”)。ch=getchar()。printf(“輸入查找的結(jié)點信息:”)。} Bithptr *DeleteNode(Bithptr *t)//刪除結(jié)點 { Bithptr *child,*pre,*s,*q。p1rtag=1。childlchild=p1。childltag=0。p1ltag=1。childrchild=p1。p1rtag=1。amp。child=childlchild。} else printf(“發(fā)現(xiàn)結(jié)點%”,childdata)。if(child==NULL){ printf(“沒有找到結(jié)點n”)。ch)。ch)。printf(“輸入查找的結(jié)點信息:”)。p1ltag=0。p1lchild=NULL。p1=(Bithptr *)malloc(sizeof(Bithptr))。scanf(“%c”,amp。scanf(“%c”,amp。Bithptr *p1,*child,*p2。} void Insert(Bithptr *root)//插入結(jié)點 { char ch。} return NULL。} if(pointrtag!=1){ point2=SearchPre(pointrchild,child)。else if(pointltag!=1){ point1=SearchPre(pointlchild,child)。amp。amp。} Bithptr *SearchPre(Bithptr *point,Bithptr *child)//查找父親結(jié)點 { Bithptr *point1,*point2。} return NULL。} if(pointrtag!=1){ point2=SearchChild(pointrchild,findnode)。else if(pointltag!=1){ point1=SearchChild(pointlchild,findnode)。} } Bithptr *SearchChild(Bithptr *point,char findnode)//查找數(shù)據(jù)結(jié)點 { Bithptr *point1,*point2。if(fltag!=1)PrintIndex(flchild)。frtag==1)printf(“[%c]→%c”,fdata,frchilddata)。else if(frchild!=NULLamp。amp。amp。flchild!=NULL)printf(“%c→[%c]”,flchilddata,fdata)。if(fltag==1amp。amp。amp。f=t。PreThread(prchild)。} if(prchild==NULL)prtag=1。if(plchild==NULL){ pltag=1。amp。if(p){遞歸中序遍歷 PreThread(plchild)。void PreThread(Bithptr *root){ Bithptr *p。if(Trtag!=1)Inorder(Trchild)。} void Inorder(Bithptr *T)//{ if(T){ if(Tltag!=1)Inorder(Tlchild)。} ch=getchar()。else Q[front]rchild=s。amp。if(rear==1)T=s。} rear++。sltag=0。slchild=NULL。){ s=(Bithptr *)malloc(sizeof(Bithptr))。if(ch!=39。39。ch=getchar()。printf(“**********************************n”)。printf(“ *課程設計題目: 線索二叉樹的運算.*n”)。printf(“**********************************n”)。front=1。Bithptr *T,*s。} } } Bithptr *CreatTree()//創(chuàng)建二叉樹 { char ch。break。break。case 4:T=DeleteNode(T)。printf(“n”)。break。查看線索n”)。printf(“t 已經(jīng)實現(xiàn)二叉樹的線索化可選擇39。break。switch(i){ case 1:Inorder(T)。i)。printf(“t 請選擇:”)。printf(“t5 輸出線索二叉樹n”)。printf(“t3 進行插入操作n”)。while(i){ printf(“t1 中序輸出二叉樹n”)。printf(“n”)。int i。Bithptr *pre=NULL。}Bithptr。struct node *lchild,*rchild。操作結(jié)果刪除目標結(jié)點并實現(xiàn)它線索化的恢復若目標結(jié)點不存在則輸出“沒有找到結(jié)點”。操作結(jié)果將要插入的結(jié)點插到要插的目標結(jié)點之前并實現(xiàn)它線索化的恢復若目標結(jié)點不存在則輸出“沒有找到結(jié)點”。操作結(jié)果返回child父親結(jié)點若不存在此結(jié)點則返回“空”。操作結(jié)果返回數(shù)據(jù)對應的結(jié)點若不存在此結(jié)點則返回“空”。操作結(jié)果輸出線索二叉樹的線索。操作結(jié)果中序線索化二叉樹。操作結(jié)果中序遍歷輸出各結(jié)點二叉樹。數(shù)據(jù)關系R若D=φ則R=φ稱BinaryTree為空二叉樹若D=φ則R=HH是如下二元關系1在D中存在唯一的成為根的數(shù)據(jù)元素root它在關系H下無前驅(qū)2若D—root≠φ則存在D—root=D1,Dr且D1∩Dr=φ3若D1≠φ則D1中存在惟一的元素X1∈H,且存在D1上的關系H1∈H若Dr≠φ則Dr中存在惟一的元素Xr∈H,且存在Dr上的關系Hr∈H,H={,H1,Hr}4D1,H是一顆符合本定義的二叉樹稱為根的左子樹Dr Hr是一顆符合本定義的二叉樹稱為根的右子樹。(3刪除的節(jié)點p有二個兒子轉(zhuǎn)化為葉子節(jié)點或只有一個兒子節(jié)點的刪除。結(jié)點刪除算法刪除的情況與搜索二叉樹的刪除的類似(1刪除的節(jié)點p是葉子節(jié)點直接刪除修改其父親的線索。結(jié)點插入算法由線索二叉樹的定義易知插入的節(jié)點定是個葉子節(jié)點需注意線索的修改可分為兩種情況(1插入的節(jié)點t是右兒子t的中序后繼是其父親的中序后繼中序前驅(qū)是其父親。該算法應附設一個指針pre始終指向剛剛訪問過的結(jié)點pre的初值應為NULL而指針p指示當前正在訪問的結(jié)點。二叉樹的中序線索化算法與中序遍歷算法類似。2若rear為偶數(shù)則該結(jié)點為父結(jié)點的左孩子若rear為奇數(shù)則該結(jié)點的右孩子若父結(jié)點和孩子結(jié)點為虛結(jié)點則無需鏈接??梢栽O置一個隊列該隊列是一個指針類型的數(shù)組保存已輸入的結(jié)點地址。對于一般的二叉樹需添加虛結(jié)點使其成為完全二叉樹。539。對其進行插入在d結(jié)點插入結(jié)點h刪除刪除結(jié)點f恢復線索等功能。原始數(shù)據(jù)要求輸入二叉樹的七個結(jié)點abcdefg輸入的是一個二叉樹這就實現(xiàn)了二叉樹的建立過程。在此次課程設計中采用的是中序線索二叉樹。加上了線索的二叉鏈表稱為線索鏈表,相應的二叉樹稱為線索二叉樹。第一篇:《數(shù)據(jù)結(jié)構(gòu)課程設計》百度文檔一、需求分析 在這個問題中要解決的任務是實現(xiàn)線索二叉樹的建立、插入、刪除、+1個空指針域。利用二叉鏈表中的空指針域存放指向結(jié)點在某種遍歷次序下的前趨和后繼結(jié)點的指針。線索性質(zhì)的不同線索二叉樹可分為前序線索二叉樹、中序線索二叉樹和后序線索二叉樹三種。1 定義數(shù)據(jù)結(jié)構(gòu) 2建立二叉樹函數(shù)返回根指針3中序遍歷4:中序線索化算法函數(shù)實現(xiàn)5輸出線索 6查找數(shù)據(jù)結(jié)點函數(shù) 7查找父親結(jié)點函數(shù) 8插入結(jié)點函數(shù) 9刪除結(jié)點函數(shù)。然后對二叉樹進行線索化。********************************** * * *課程設計題目: 線索二叉樹的運算.* * * 創(chuàng)建二叉樹請依次輸入表示虛結(jié)點以結(jié)束: abcdefg 1 中序輸出二叉樹 2 進行二叉樹線索化 3 進行插入操作 4 進行刪除操作 5 輸出線索二叉樹 0 退出請選擇:1 →d→g→b→e→a→f→c 1 中序輸出二叉樹 2 進行二叉樹線索化 3 進行插入操作 4 進行刪除操作 5 輸出線索二叉樹 0 退出請選擇:2 已經(jīng)實現(xiàn)二叉樹的線索化可選擇39。查看線索二、概要設計 建立二叉樹即指在內(nèi)存中建立二叉樹的存儲結(jié)構(gòu)建立一個二叉鏈表需按某種順序一次輸入二叉樹中的結(jié)點且輸入順序必須隱含結(jié)點間的邏輯結(jié)構(gòu)信息。關鍵在于如何將新結(jié)點作為左孩子和右孩子連接到它的父結(jié)點上。操作1令隊頭指針front指向其孩子結(jié)點當前輸入的建立鏈接的父結(jié)點隊尾指針rear指向當前輸入的結(jié)點初始front=1,rear=0。3若父結(jié)點與其兩個孩子結(jié)點的鏈接完畢則令front=front+1,使front指向下一個等待鏈接的父結(jié)點。只需要將遍歷算法中訪問結(jié)點的操作具體化為建立正在訪問的結(jié)點與其非空中序前趨結(jié)點間線索。結(jié)點*pre是結(jié)點*p的前趨而*p是*pre的后繼。(2插入的節(jié)點t是左兒子t的中序前驅(qū)是其父親的中序前驅(qū)中序后繼是其父親。(2刪除的節(jié)點p有一個兒子p有一個左兒子以p為根的左子樹中的具有最大值節(jié)點的t中序后繼是p的中序后繼中序前驅(qū)不變p有一個右兒子以p為根的右子中的具有最小值節(jié)點t中序前驅(qū)是p的中序前驅(qū)中序后繼不變。抽象數(shù)據(jù)類型二叉樹的定義如下 ADT BinaryTree{ 數(shù)據(jù)對象DD是具有相同特性的數(shù)據(jù)元素的集合?;静僮鱌 *CreatTree()操作結(jié)果建立二叉樹樹函數(shù)返回根指針 Inorder(*T)初始條件二叉樹已存在已知其根結(jié)點。PreThread(*root)初始條件二叉樹已存在已知其根結(jié)點。PrintIndex(*t)初始條件二叉樹已存在已知其根結(jié)點。*SearchChild(*point,findnode)初始條件二叉樹已存在已知其根結(jié)點已知結(jié)點的數(shù)據(jù)。*SearchPre(*point,*child)初始條件二叉樹已存在已知其根結(jié)點已知其孩子結(jié)點。Insert(*root)初始條件二叉樹已存在已知其根結(jié)點。*DeleteNode(*t)初始條件二叉樹已存在已知其根結(jié)點。 模塊函數(shù)名返回類型形式參數(shù)類型[調(diào)用的函數(shù)所對應的序號] 1創(chuàng)建二叉樹CreatTree,void,2中序遍歷二叉樹Inorder,void,Bithptr *T3中序線索化二叉樹PreThread,void,Bithptr *root 4)輸出線索二叉樹PrintIndex,void,Bithptr *t5)查找數(shù)據(jù)結(jié)點SearchChild,Bithptr,Bithptr *pointchar findnode 6)查找父親結(jié)點SearchPre,Bithptr,Bithptr *pointBithptr *child 7)插入結(jié)點Insert,void,Bithptr *root[5] 8)刪除結(jié)點DeleteNode,Bithptr ,Bithptr *t[5,6] 9)主程序模塊(main,void,)[1,2,3,4,7,8]三、詳細設計 typedef struct node { int ltag,rtag。char data。//結(jié)點 void *CreatTree()//建立二叉樹void Inorder(Bithptr *T)//中序遍歷二叉樹 void PreThread(Bithptr *root)//中序線索化二叉樹void PrintIndex(Bithptr *t)//輸出線索二叉樹void Insert(Bithptr *root)//插入結(jié)點void DeleteNode(Bithptr *root)//刪除結(jié)點 Bithptr *Q[maxsize]。 void main(){ Bithptr *T。T=CreatTree()。i=1。printf(“t2 進行二叉樹線索化n”)。printf(“t4 進行刪除操作n”)。printf(“t0 退出n”)。scanf(“%d”,amp。printf(“n”)。printf(“n”)。case 2:PreThread(T)。539。printf(“n”)。case 3:Insert(T)。break。printf(“n”)。case 5:PrintIndex(T)。default:printf(“errornt 請繼續(xù)選擇:”)。int front,rear。T=NULL。rear=0。printf(“* *n”)。printf(“* *n”)。printf(“創(chuàng)建二叉樹請依次輸入表示虛結(jié)點以結(jié)束n”)。while(ch!=39。){ s=NULL。39。sdata=ch。srchild=NULL。
點擊復制文檔內(nèi)容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1