資料結構 排序二叉樹的建立 插入和刪除

2021-08-20 09:22:41 字數 2050 閱讀 5077

課程實驗,多有不足

#include #include #define true 1

#define false 0

#define endkey 0

typedef int keytype;

typedef struct node

bstnode, *bstree;

int insertbst(bstree *bst, keytype key)

/*若在二叉排序樹中不存在關鍵字等於key的元素,插入該元素*/

else if(key<(*bst)->key)

insertbst(&((*bst)->lchild),key);

else if(key>(*bst)->key)

insertbst(&((*bst)->rchild),key);

else return 0;

//請完成本函式的功能

}void createbst(bstree *bst)

/*從鍵盤輸入元素的值,建立相應的二叉排序樹*/

//請完成本函式的功能

}void inorder(bstree bst)

/*中序遍歷二叉樹, root為指向二叉樹(或某一子樹)根結點的指標*/

}bstree searchbst(bstree bst, keytype key)

/*在根指標bst所指二叉排序樹中,遞迴查詢某關鍵字等於key的元素,若查詢成功,返回指向該元素結點指標,否則返回空指標*/

int delbst(bstree t, keytype k) /*在二叉排序樹t中刪去關鍵字為k的結點*/

if(p==null) return 0; /*若找不到,返回原來的二叉排序樹*/

if(p->lchild==null) /*p無左子樹*/

else /*p有左子樹*/

if(q==p)

q->lchild=s->lchild ; /*將s的左子樹鏈到q上*/

else

q->rchild=s->lchild;

p->key=s->key; /*將s的值賦給p*/

free(s);

}return 1;

} /*delbst*/

void main()

break;

case 』3』:

printf("輸入待查詢的資料值:\n");

scanf("%d",&keyword); //輸入要查詢元素的關鍵字

p=searchbst(t, keyword);

if(!p) printf("%d 沒有找到。\n",keyword); //沒有找到

else printf("%d 查詢成功。\n",keyword); //成功找到

break;

case 』4』:

printf("輸入待插入的資料:");

scanf("%d",&keyword); //輸入要插入元素的關鍵字

temp=insertbst(&t, keyword);

if(temp==false)

printf("%d 已在二叉樹中!\n",keyword); //該元素已經存在

else

printf("%d 插入成功!\n",keyword);

break;

case 』5』:

printf("輸入待刪除的資料:");

scanf("%d",&keyword); //輸入要刪除元素的關鍵字

temp=delbst(t, keyword);

if(temp==false) printf("%d 不存在!\n",keyword); //該元素不存在

else printf("成功刪除%d\n",keyword); //成功刪除

break;

default:

j=』n』;

}}printf("程式結束!\npress any key to shut off the window!\n");

getchar();

getchar();

}

資料結構 建立二叉樹

include include define max 100 using namespace std typedef struct bnode bnode,btree btree q max btree creatree 層次輸入 rear q rear s if rear 1 root s els...

資料結構 排序二叉樹

排序二叉樹即在構建二叉樹的時候就對二叉樹進行排序了,當中序遍歷二叉樹的時候即可得到乙個有序的數列 排序二叉樹的規則就是 若他的左子樹不空,則左子樹上所有結點的值均小於它的根結構的值 若他的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹 從二叉排序樹的定義也可...

資料結構(二叉樹) 二叉樹的建立 儲存 遍歷

建立二叉樹,並通過呼叫函式,輸出先序遍歷 中序遍歷與後序遍歷的結果 include include define true 1 define false 0 define ok 1 define error 0 datatype 是二叉樹資料元素型別,此程式定義為char型 typedef char...