資料結構作業 實現任意三種靜態或動態查詢

2021-08-01 05:35:49 字數 2033 閱讀 9898

這裡是最簡單的二分,分塊和hash表

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace

std;

typedef

long

long ll;

#define maxl 100

#define maxi 20

#define hash_size 100

//雜湊表 鏈式儲存法解決衝突

typedef

struct hash_table*hash_tableptr;

int hash(int key);

int search(hash_tableptr hash, int key);

//void randperm(int a,int num)

random_shuffle(temp.begin(), temp.end());

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

}//二分查詢

int binarysearch(int a,int st,int ed,int key)

else

if(a[mid]1;

}else

return mid;

}return0;}

void search_1() */

sort(a, a + 100);

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

cout

<" ";

cout

while (t--) else

cout

<< s << " 不存在的!"

<< endl;

}}//分塊查詢

typedef

int keytype;

typedef

char infotype[10];

typedef

struct

nodetype;

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

typedef

struct

idxtype;

typedef idxtype idx[maxi]; //索引表型別

int idxsearch(idx i,int m,seqlist r,int n,keytype k)

i=i[high+1].link;

while (i<=i[high+1].link+b-1 && r[i].key!=k) i++;

if (i<=i[high+1].link+b-1)

return i+1;

else

return0;}

void search_2();

idx i= ,,,,};//索引表

keytype a= ;

int t=20;

for (i=0; iwhile(t--)}//

int hash(int key)

int search_hash(hash_tableptr hash, int key)

return

0; }

}void search_3();

for (i = 0; i < hash_size; i++)

for (i = 0; i < hash_size; i++)

}int t=10;

while(t--)

}int main()

資料結構 佇列的三種實現方式

佇列是一種只在一端插入 隊尾 另一端刪除 隊首 的有序線性表,佇列中第乙個插入的元素也是第乙個被刪除的元素,所以,佇列是一種先進先出 fifo 線性表。1 主要操作 2 輔助操作 1 基於簡單迴圈陣列的實現 package datastructure public class arrayqueue ...

資料結構分三種 邏輯,物理,運算

一 資料的邏輯結構 指反映資料 元素之間的邏輯關係的 資料結構,其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。邏輯結構包括 集合 資料結構中的元素之間除了 同屬乙個集合 的相互關係外,別無其他關係 2.線性結構 資料結構中的元素存在一對一的相互關係 3.樹形結構 資料...

Redis 三種資料結構與事務

定位,附近的人,打車距離計算,學生請假還假打卡時判斷是否在學校中 redis的geo在3.2就推出了,這個功能可以推算地理位置的資訊,兩地之間的距離 geoadd 新增地理位置 geoadd key 緯度 經度 名稱 規則 無法直接新增兩極,南極北極,一般正常情況下城市資料是直接錄入的 geoadd...