靜態查詢表
#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 插入和刪除操作是昂貴的。...