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