中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

武清区| 临海市| 承德县| 岑溪市| 曲阜市| 广灵县| 盖州市| 茶陵县| 唐海县| 内江市| 南昌市| 车致| 于田县| 宁德市| 海林市| 祁阳县| 杭锦后旗| 通河县| 平凉市| 扶风县| 晋江市| 那坡县| 外汇| 中阳县| 秦皇岛市| 玉山县| 临澧县| 治多县| 茂名市| 慈溪市| 玛曲县| 卓尼县| 阿勒泰市| 泸定县| 普安县| 珠海市| 东宁县| 南投市| 商南县| 长沙市| 新平|