亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言數據結構二叉樹數據插入

發布時間:2020-07-22 03:13:06 來源:網絡 閱讀:3243 作者:風1雨 欄目:編程語言

指定一個數據為二叉樹的根,向二叉樹中插入數據,(樹的第一層)如果要插入的數據比樹根的數據大,則放在該結點的右側,如果要插入的數據比樹根小,則放在該結點的左側,(樹的第二層)數據的存放規則與上面的一致。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

//創建結構體

typedef struct tree

{

int a;//存放數據

struct tree *l;//二叉樹節點的左指針

struct tree *r;//二叉樹節點的右指針

}r;

//聲明一個插入函數s是二叉樹的頭節點,t是要插入到樹中的節點

void cmp(r *s,r* t);

//創建節點的函數

r *creat()

{

r * s = (r *)malloc(sizeof(r));

if(NULL != s)

memset(s,0,sizeof(r));

return s;

}

//采用遞歸遍歷的形式訪問樹中的每個節點,然后free

void destroy(r *r)

{

if(NULL == r)

return ;

destroy(r->l);

destroy(r->r);

free(r);//遞歸函數調用進行釋放內存

}

//顯示樹中每個節點的數據

void show(r *r)

{

if(NULL == r)

return ;

look(r->l);

look(r->r);

printf("%d\t",r->a);//后續遍歷

}


//向樹中插入元素,s是樹的根節點,t是要插入樹中的節點

void insert(r *s,r* t)

{

if(t->a < (s->a) && s->l == NULL)//如果新節點中的樹大于根節點中的樹,并且根節點的左指針是NULL

{

s->l = t;//直接將該指針連接到根的左指針上

return ;//節點被連接到樹上后就退出

}else if( t->a < (s->a) && NULL != s->l)//如果新節點中的樹大于根節點中的樹,并且根節點的左指針不是NULL

{

insert(s->l,t);//繼續調用函數

}

if( t->a >= (s->a) && s->r == NULL)//如果新節點中的樹小于根節點中的樹,并且根節點的右指針是NULL

{

s->r = t;//直接將該指針連接到根的右指針上

return ;//節點被連接到樹上后就退出

}else if(t->a >= (s->a ) && NULL != s->r)//如果新節點中的樹小于根節點中的樹,并且根節點的右指針不是NULL

{

insert(s->r,t);//繼續調用函數直到將結點掛到該樹上

}

}

void main()

{


r * root = creat();//創建根節點

root->a = 8;//給根節點一個初始值8

int s = 0;

while(1)

{

scanf("%d",&s);//鍵盤錄入數據,然后將這些數據插入到樹中

if(s == -1)//當輸入-1時,結束輸入

break;

r * pnew =creat();//對輸入的每個數創建節點

pnew->a = s;//將輸入的數賦值給創建的節點

insert(root,pnew);//將該節點插入進樹中

}

show(root);//后續遍歷書中所有的元素

destroy(root);//釋放該樹中所有的節點

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沧源| 巴青县| 烟台市| 佛学| 赤壁市| 襄城县| 汨罗市| 中阳县| 新源县| 安乡县| 花莲市| 民权县| 湟中县| 巢湖市| 车险| 崇礼县| 张家口市| 仁化县| 浦北县| 绥阳县| 昆明市| 黔西县| 思南县| 东方市| 中卫市| 南部县| 浠水县| 安福县| 铁岭县| 镇原县| 枣庄市| 北安市| 丹寨县| 含山县| 宜川县| 平和县| 武威市| 如皋市| 宣汉县| 荣昌县| 滦平县|