資料結構機測四

2021-10-01 11:20:23 字數 4168 閱讀 9773

3378] - 資料結構實驗之查詢六:順序查詢

#include int main() 

}if (t == -1)

printf("no\n");

else

printf("%d %d\n", t + 1, n - t);

}}

資料結構實驗之查詢一:二叉排序樹 

struct node ;

int cnt;

void insert(node *&root, int num) else

}void front(int *a, node *root)

}int main()

cnt = 0;

front(par, tree); // 找出母二叉排序樹的先序遍歷序列

while (l--)

cnt = 0;

front(t, temp); // 找出子二叉排序樹的先序遍歷序列

int flag = 1;

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

}printf(flag == 1 ? "yes\n" : "no\n");}}

return 0;

}

struct node ;

int n;

void create_tree(node *&root, char *s) else else if (val < 0) else

}}void count(node *root)

}void to_lower_case(char *s)

}int main()

count(tree);

return 0;

}

struct node ;

int height(node *p) //求樹的深度

node *ll(node *p)

node *rr(node *p)

node *lr(node *p)

node *rl(node *p)

void insert(node *&p, int val) else if (val > p->data)

} else if (val < p->data)

}p->height = max(height(p->l), height(p->r)) + 1;

}int main()

cout << head->data << endl;

return 0;

}

雜湊表

// 資料結構實驗之查詢七:線性之雜湊表 

#define inf 0x3f3f3f3f

using namespace std;

int a[2000];

int hash[2000];

int main() else

d++;

}hash[(key + d) % p] = a[i];

a[i] = (key + d) % p;}}

// 輸出key

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

}return 0;

} // 資料結構實驗之查詢五:平方之雜湊表

int a[2000];

int hash[2000];

int main()

memset(hash, inf, sizeof(hash));

for (int i = 0; i < n; i++) else else if (hash[(key - temp) % p] == inf) }}

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

}return 0;

}

資料結構實驗之查詢四:二分查詢 

// 這個題想要ac,同樣的**,用#include不能ac,

//而且會顯示tle(因為這個標頭檔案太大了,包含所有的c++函式,單用iostream不會tle)。

//如果用#include就會ac。不知道為啥~!

// - -|||

#include #include using namespace std;

int a[1000001];

int search(int l, int r, int k)

int main()

return 0;

}

資料結構實驗之排序二:交換排序

int n, cnt1, cnt2;

void quicksort(int *c, int left, int right)

c[i] = temp;

quicksort(c, left, i - 1);

quicksort(c, i + 1, right);

}void bubblesort(int *c) }}

}

資料結構實驗之排序三:bucket sort 

int a[101];

// cin 過不了

int main()

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

return 0;

}

f - 資料結構實驗之排序六:希爾排序

int a[10001];

int n;

void shellsort(int d)

}}int main()

shellsort(n / 2);

for (int i = 0; i < n; i++) printf(i == n - 1 ? "%d\n" : "%d ", a[i]);

shellsort(1);

for (int i = 0; i < n; i++) printf(i == n - 1 ? "%d\n" : "%d ", a[i]);

}return 0;

}

void heapmerge(int *a, int i, int len) 

}}void heapcreate(int *a, int n)

}void heapsort(int *a, int n)

}int main() else

}if (a[min] < num) a[min] = num;}}

heapsort(a, m);

for (int i = m; i >= 1; i--) printf(i == 1 ? "%d\n" : "%d ", a[i]);

}return 0;

}

資料結構實驗之排序五:歸併求逆序數

using namespace std;

int a[100005], temp[100005];

long long sum;

void merge(int s1, int e1, int s2, int e2) else

}while (p1 <= e1)

while (p2 <= e2)

// 回歸到a

for (int i = s1; i <= e2; i++)

}void mergesort(int l, int r)

}int main()

// 注意是n-1

mergesort(0, n - 1);

cout << sum << endl;

}return 0;

}

資料結構實驗之排序七:選課名單

struct node ;

node *clist[2005]; // 記錄哪些學生選了

int cla[2005]; // 記錄課程人數

int main()

scanf("%d %d", &n, &m);

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

q->next = p->next;

p->next = q;}}

for (int i = 1; i <= m; i++)

}return 0;

}

資料結構機測三

a基於鄰接矩陣的廣度優先搜尋遍歷 和 b圖的深度遍歷 int gra 101 101 int vis 101 ans 101 int k,m,t,cnt void bfs int begin for int i 0 i cnt i void dfs int begin int main cnt 0 ...

資料結構最後一次機測

void qqsort int a,int l int r for i 0 i 100 i return 0 include include int a 11 m void heapjust int a,int i,int len void heapsort int a for i m 1 i 0 ...

資料結構(四)

同學說我更新得太慢了。是啊,隔了好久才更新一次。其實我也想快點的更新,更新得越快同時也說明我掌握知識的速度越快,越多。但是工作不允許啊。每天早出晚歸,空閒的實現還要分配一點給外語。不過,以後我會努力的,只要有朋友的支援,我會把我的所學和經驗奉獻給大家。有點開源的精神吧。呵呵,當然了,我還沒有哪個資格...