資料結構與演算法(六)查詢 c語言實現

2021-10-19 10:54:24 字數 2848 閱讀 7208

靜態查詢表

#include #include #include #define max 20

typedef struct

elemtype;

typedef struct

stable;

stable* initlist(int n)

for (int i = 0; i <= n; ++i)

st->length = n;

return st;//返回指標變數一定要寫,如果只在初始化函式裡面初始化,出了這個函式指標就已經不存在了,

//會報沒有初始化區域性變數的問題

}void createlist(stable* st, int n)

}int seqsearch(stable* st, int key)//順序查詢

int binsearch(stable* st, int key)//二分查詢迴圈版

return 0;

}int bin_search(stable* st, int low, int high,int key)//二分查詢遞迴版

動態查詢表

/*二叉排序樹的實現:左小右大*/

#include #include #include typedef struct

elemtype;

typedef struct bstnode

bstnode,*bstree;

bstree* inittree(int n) //補充圖裡面所說的用陣列創造圖並且釋放記憶體

printf("請輸入第%d個節點的元素: ",i+1);

scanf_s(" %d",&(node[i]->data.key));

} node[4]->lchild = node[1];//此處根據圖的情況寫

雜湊表

/*拉鍊法比較實用*/

#include #include #include #define max 6

typedef struct node

node,*pnode;

typedef struct elem

elemtype;

elemtype hs[max];

void inithash(elemtype* hs)

}int h(int key)

bool createhash()

if(hs[m].empty != 1)

i = i + 1; }}

void search(int key)

if(p->data!=key)

}if(p==null)

printf("找不到\n");

資料結構 查詢演算法 用c語言實現查詢演算法《一》)

一 查詢的分類 1 靜態查詢 不進行插入和刪除操作。2 動態查詢 可進行插入和刪除操作。按查詢的基本方法可分為 比較查詢法和計算查詢法。按元素的組織結構可分為 基於線性表的查詢和基於樹的查詢。二 順序查詢 基於線性表 1 陣列順序儲存 靜態 比較查詢 include define list size...

資料結構(c語言實現) 二分查詢演算法

l是使用者傳入的乙個線性表。函式binarysearch要查詢x在data中的位置,即陣列下標 注意 元素從下標1開始儲存 找到則返回下標,否則返回乙個特殊的失敗標記notfound。以下解答僅供參考 二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線...

資料結構與演算法C語言實現筆記(1) 表

1 表 表是最簡單的資料結構,是形如a1 a2 a3 a4 an的表,表的大小為n。大小為0的表為空表。2 表的簡單陣列實現 對錶的所有操作都可以通過使用陣列來實現。但是陣列實現的表有兩個缺點 1 需要對錶大小的最大值進行估計,通常需要估計的大一些,因此會浪費大量的空間 2 插入和刪除操作是昂貴的。...