數據結構 :利用二叉排序樹對順序表進行排序
我也是參考別人的,你參考下: #include #include #include using namespace std; const int size=1000; struct BitNode{ int date; BitNode *lchild,*rchild;//左右孩子 }*BiTree; struct Stack{ BitNode *elem[size]; int length; }S; struct List{//長度 int elem[size]; int length; }L; int InitStack(Stack &利用二叉排序樹對順序表進行排序 (1)生成一個順序表L;(2)對所生成的順序表L構造二叉排序樹(3)利用棧結構
用C或C++語言實現的功能: (1)生成一個順序表L; (2)對所生成的順序表L構造二叉排序樹 (3)利用棧結構實現中序遍歷二叉排序樹; (4)中序遍歷所構造的二叉排序樹將記錄由小到大輸出。設計題目:利用二叉排序樹對順序表進行排序 已知技術參數和設計要求
#include #include #include using namespace std; const int size=1000; struct BitNode{ int date; BitNode *lchild,*rchild;//左右孩子 }*BiTree; struct Stack{ BitNode *elem[size]; int length; }S; struct List{//長度 int elem[size]; int length; }L; int InitStack(Stack &L) { L.length=0二叉排序樹的實現:分別以順序表和二叉鏈表作為存儲結構,實現二叉排序樹。基本操作有查找、插入、刪除。
樓主注意用順序表作二叉樹的存儲結構的結點的結構, 結點的地址是順序表的索引值 時間復雜度是 n C/C++ code#include typedef struct Nod { char d; int left, right; }Node; void inorder(Node t[], int root) { if(root!=-1) { inorder(t, t[root].left); printf("%c ", t[root].d); inorder(t, t[root].right); } } void main() { Node t[3] ={{'r', 1, 2}二叉排序樹的實現 要求:分別以順序表和二叉鏈表作為儲結構,實現二叉排序樹。基本操作有插入、刪除。
//=基于先序遍歷算法創(chuàng)建二叉樹= //=要求輸入先序序列,其中加入虛結點