資源簡介
C++編寫的查找算法,用二叉排序樹查找,是在VC++6.0上實現的

代碼片段和文件信息
#include??
#include??
typedef?int?InfoType;?
typedef?int?KeyType;?
typedef?struct?node?
{?
KeyType?key;?
InfoType?otherinfo;??
struct?node?*lchild*rchild;?
}BSTNode;?
typedef?BSTNode?*BSTree;?
BSTNode?*SearchBST(BSTree?TKeyType?key)?
{??
if(T==NULL||key==T->key)?
return?T;?
if(keykey)?
return?SearchBST(T->lchildkey);?
else?
return?SearchBST(T->rchildkey);?
}
void?InsertBST(BSTree?*Tint?key)?//插入值
{?
BSTNode?*p*q;?
if((*T)==NULL)?
{?
(*T)=(BSTree)malloc(sizeof(BSTNode));?
(*T)->key=key;?
(*T)->lchild=(*T)->rchild=NULL;?
}?
else?
{?
p=(*T);?
while(p)?
{?
q=p;?
if(p->key>key)?
p=q->lchild;?
else?if(p->key p=q->rchild;?
else?
{?
printf(“\n?該二叉排序樹中含有關鍵字為%d?的節點!\n“key);?
return;?
}?
}?
p=(BSTree)malloc(sizeof(BSTNode));?
p->key=key;?
p->lchild=p->rchild=NULL;
if(q->key>key)?
q->lchild=p;?
else?q->rchild=p;?
}?
}
BSTree?CreateBST(void)?//建立二叉排序樹
{?
BSTree?T=NULL;?
KeyType?key;?
scanf(“%d“&key);?
while(key)?
{?
InsertBST(&Tkey);?
scanf(“%d“&key);?
}??
return?T;?
}
void?main()?
{?
BSTNode?*SearchBST(BSTree?TKeyType?key);?
void?InsertBST(BSTree?*TptrKeyType?key);?
BSTree?CreateBST();?
BSTree?T;?
BSTNode?*p;?
int?key;?
printf(“請輸入關鍵字(輸入?0?為結束標志)?:\n“);?
T=CreateBST();??
printf(“\n“);?
printf(“請輸入欲查找關鍵字:“);?
scanf(“%d“&key);?
p=SearchBST(Tkey);?
if(p==NULL)?
printf(“沒有找到%d!\n“key);?
else?printf(“找到%d!\n“key);?
printf(“\n“);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????41984??2012-07-20?17:27??二叉排序樹查找\Debug\vc60.idb
?????文件??????53248??2012-07-19?14:53??二叉排序樹查找\Debug\vc60.pdb
?????文件?????184377??2012-07-20?17:27??二叉排序樹查找\Debug\tree.exe
?????文件?????443392??2012-07-19?17:30??二叉排序樹查找\Debug\tree.pdb
?????文件?????220236??2012-07-19?14:53??二叉排序樹查找\Debug\tree.pch
?????文件???????6013??2012-07-20?17:27??二叉排序樹查找\Debug\tree.obj
?????文件?????182892??2012-07-20?17:27??二叉排序樹查找\Debug\tree.ilk
?????文件??????????0??2012-07-20?17:27??二叉排序樹查找\tree.plg
?????文件??????41984??2012-07-20?17:40??二叉排序樹查找\tree.ncb
?????文件???????1639??2012-07-18?17:22??二叉排序樹查找\tree.cpp
?????文件??????48640??2012-07-20?17:27??二叉排序樹查找\tree.opt
?????文件???????3377??2012-07-20?17:27??二叉排序樹查找\tree.dsp
?????目錄??????????0??2012-07-18?15:47??二叉排序樹查找\Debug
?????目錄??????????0??2012-07-18?15:47??二叉排序樹查找
-----------?---------??----------?-----??----
??????????????1227782????????????????????14
- 上一篇:C++寫的家庭小記賬本
- 下一篇:模擬Ethernet幀的發送過程
評論
共有 條評論