/*
面試(四)
開發環境:visual studio 2008
開發語言:c語言
要 求:
下列程式中的treesort函式功能:對任意已存在的二叉樹進行排序後生成乙個新的二叉排序樹。 優化treesort函式:實現對任意已存的二叉樹進行排序(不允許在其過程中生成新樹)。
時 間:15-20分鐘
得分標準:
考核標準: 口述演算法思路不清晰者(0分)
考核小組:張一濤
批註評語:
#include #include typedef struct btree
tree;
char data[100];
int k=0;
tree *createtree(tree *root,char *str)
else
if(str[i]==')')
top--;
else
if(str[i]==',')
k=2;
else}}
return root;
}void inorder(tree *r)
if(top!=-1)
}}void freetree(tree *r)
}void outputbylayer(tree *r)
printf("\n");
high++;
}printf("the tree is node:%d\n",last);
printf("the tree is high:%d\n",high);
data[k]='\0';
}tree *treesort(tree *r)
for(i=1;idata=data[i];
t->lchild=null;
t->rchild=null;
p=r;
q=r;
while(p!=null)
if(t->datadata)
}if(flag==0)
q->lchild=t;
else
q->rchild=t;
}return r;
}void main()
二叉排序樹
在複習資料結構,把這個東西總結一下。這種結構是動態查詢表,這種動態是相對靜態查詢 順序查詢,折半查詢,分塊查詢等 來說的。對於各種靜態鍊錶,要達到查詢複雜度為o logn 必須要求有序 而要使插入刪除複雜度為o 1 必須是鍊錶儲存。動態查詢表就可以同時滿足這兩者。動態查詢表的特點是表結構本身在查詢過...
二叉排序樹
name 二叉排序樹相關操作 author unimen date 2011 10 8 13 14 21 刪除結點比較麻煩,總結如下 4大種情況 1 結點p無右孩子 將該點的左孩子變為其在雙親中的同位孩子 1 p為其雙親的左孩子時將其的左孩子變為雙親的左孩子 2 p為其雙親的右孩子時將其的左孩子變為...
二叉排序樹
include include include include struct tree node void insert node struct tree node int void pre order struct tree node void in order struct tree node ...