參考書籍-王道-書籍結構-**已在vs2019驗證過!
二叉樹的建樹(層次建樹),前序、中序、後序遍歷、中序非遞迴遍歷、層次遍歷
//棧的相關資料結構
#define maxsize 50
typedef bitree elemtype;
typedef struct sqstack;
void initstack(sqstack& s);
bool stackempty(sqstack& s);
bool push(sqstack& s, elemtype x);
bool pop(sqstack& s, elemtype& x);
bool gettop(sqstack& s, elemtype& x);
//佇列的相關資料結構
typedef struct linknode linknode;
typedef struct linkqueue;
void initqueue(linkqueue& q);
bool isempty(linkqueue q);
void enqueue(linkqueue& q, elemtype x);
bool dequeue(linkqueue& q, elemtype& x);
/******************遞迴實現****************************/
//前序遍歷=abdhiejcfg
void preorder(bitree p)
}//中序遍歷 hdibjeafcg
void inorder(bitree p)
}//後續遍歷hidjebfgca
void postorder(bitree p)
}/******************非遞迴實現*************************/
//中序遍歷非遞迴,非遞迴執行效率更高
void inorder2(bitree t)
else }}
//層次遍歷,廣度優先遍歷
void levelorder(bitree t)
}/******************層次建樹*************************/
//二叉樹的建樹(層次建樹)
bitree inittree()
pnew = (bitree)calloc(1, sizeof(bitnode));//calloc申請空間並對空間進行初始化,賦值為0
pnew->c = c;
listpnew = (ptag_t)calloc(1, sizeof(tag_t));
listpnew->p = pnew;
if (null == tree)
else
if (null == pcur->p->lchild)
else if (null == pcur->p->rchild)
}return tree;
}// 二叉樹的建樹(層次建樹),前序、中序、後序遍歷、中序非遞迴遍歷、層次遍歷
int main()
二叉排序樹的遍歷和搜尋
}//遞迴演算法簡單,但執行效率較低,實現留給大家編寫
bstnode* bst_search(bitree t, keytype key, bitree& p)
return t;
}//這個書上沒有
void deletenode(bitree& root, keytype x)
if (root->key > x)
else if (root->key < x)
else
else if (root->rchild == null)
else
root->key = tempnode->key;
deletenode(root->lchild, tempnode->key);
} }}void inorder(bitree t)
}int main()
; printf("\n建立二叉排序樹:");
creat_bst(t, str, 7);
inorder(t);
printf("\n");
search = bst_search(t, 41, parent);
if (search)
else
deletenode(t, 40);
inorder(t);
printf("\n");
system("pause");
}
二叉樹,完全二叉樹,滿二叉樹,二叉排序樹
二叉樹 二叉樹是每個節點最多有兩個子樹的樹結構 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。完全二叉樹 除最後一層外,每一層上的結點數均達到最大值 在最後一層上只缺少右邊的若干結點 樹中所含的n個節點和滿二叉樹中編號...
二叉樹(四) 二叉排序樹
二叉排序樹或者非空二叉樹,或者為具有以下性質的二叉樹 1 若根結點的左子樹不空,則左子樹上所有結點的值都小於根結點的值 2 若根結點的右子樹不空,則右子樹上所有結點的值都大於或者等於根結點的值 每一棵子樹分別也是二叉排序樹。上述定義為遞迴定義 如下圖 該二叉樹的中序序列如下 10,30,35,38,...
二叉搜尋樹(二叉排序樹)
描述 判斷兩序列是否為同一二叉搜尋樹序列 題目類別 樹 難度 中級 執行時間限制 10sec 記憶體限制 128mbyte 階段 入職前練習 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據...