第十四周專案1 驗證演算法

2021-07-24 21:50:41 字數 2513 閱讀 9513

/*問題及** 

*all right reserved. 

*檔名稱:驗證演算法.cpp 

*版本號;v1.0 

*問題描述: 

認真閱讀並驗證折半查詢演算法。 

認真閱讀並驗證分塊查詢演算法。 

*輸入描述:無 

*程式輸出:根據要求輸出 

1.折半演算法

#include

#define maxl 100

typedef int keytype;

typedef char infotype[10];

typedef struct

nodetype;

typedef nodetype seqlist[maxl];     //順序表型別

int binsearch(seqlist r,int n,keytype k)

return 0;

}int main()

,x=75;

for (i=0; i0)

printf("序列中第 %d 個是 %d\n",result, x);

else

printf("木有找到!\n");

return 0;

}遞迴折半

#include

#define maxl 100

typedef int keytype;

typedef char infotype[10];

typedef struct

nodetype;

typedef nodetype seqlist[maxl];     //順序表型別

int binsearch1(seqlist r,int low,int high,keytype k)

else

return 0;

}int main()

,x=75;

for (i=0; i0)

printf("序列中第 %d 個是 %d\n",result, x);

else

printf("木有找到!\n");

return 0;

}執行結果

2.分塊查詢

執行結果:

3.二叉樹排序

#include

#include

typedef int keytype;

typedef char infotype[10];

typedef struct node                 //記錄型別

bstnode;

//在p所指向的二叉排序樹中,插入值為k的節點

int insertbst(bstnode *&p,keytype k)

else if (k==p->key)                 //樹中存在相同關鍵字的結點,返回0

return 0;

else if (kkey)

return insertbst(p->lchild,k);  //插入到*p的左子樹中

else

return insertbst(p->rchild,k);  //插入到*p的右子樹中

}//由有n個元素的陣列a,建立乙個二叉排序樹

bstnode *createbst(keytype a,int n)   //返回bst樹根結點指標}}

//在bt指向的節點為根的排序二叉樹中,查詢值為k的節點。找不到返回null

bstnode *searchbst(bstnode *bt,keytype k)

//二叉排序樹中查詢的非遞迴演算法

bstnode *searchbst1(bstnode *bt,keytype k)

return null;

}void delete1(bstnode *p,bstnode *&r)  //當被刪*p結點有左右子樹時的刪除過程

}void delete(bstnode *&p)   //從二叉排序樹中刪除*p結點

else if (p->lchild==null)   //*p結點沒有左子樹的情況

else delete1(p,p->lchild);  //*p結點既沒有左子樹又沒有右子樹的情況

}int deletebst(bstnode *&bt, keytype k)  //在bt中刪除關鍵字為k的結點}}

int main()

;bt=createbst(a,n);

printf("bst:");

dispbst(bt);

printf("\n");

printf("刪除%d結點\n",x);

if (searchbst(bt,x)!=null)

return 0;

}執行結果:

4.平衡二叉樹

執行結果:

第十四周專案(1) 驗證演算法1

問題及 煙台大學計算機與控制工程學院 作 者 楊甯 完成日期 2015年11月30日 分別對查詢90 47 100進行測試。include define maxl 100 typedef int keytype typedef char infotype 10 typedef struct node...

第十四周專案1 驗證演算法(1)

程式 檔名稱 1.cpp 完成日期 2016年12月8日 版本號 vc6.0 問題描述 認真閱讀並驗證折半查詢演算法。請用有序表作為測試序列,分別對查詢90 47 100進行測試 輸入描述 無 程式輸出 測試結果 include define maxl 100 typedef int keytype...

第十四周 專案1 驗證演算法(1)

1.非遞迴折半查詢 include define maxl 100 typedef int keytype typedef char infotype 10 typedef struct nodetype typedef nodetype seqlist maxl 順序表型別 int binsear...