請教兩個C語言資料結構與演算法的問題,請看圖,謝謝了

時間 2021-08-11 17:49:46

1樓:匿名使用者

#include

#include

int c = 0;

//int arr = ;

int store[15];

int hash(int a, int len, int key)

int count_sort(int a, int len)

; // base 0, 1, 2,... 10;

int i;

target = malloc(len * sizeof(int) + 1);

for (i = 0; i < 10 + 1; i ++)

c[i] = 0;

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

c[a[i]] ++;

for (i = 0; i < 10 + 1; i ++)

c[i + 1] += c[i];

for (i = len - 1; i >= 0 ; i --)

target[c[a[i]]--] = a[i];

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

a[i] = target[i + 1];

free(target);

return 0;}/*

* b[i] = a[i] % m;

*/int count_sort2(int a, int b, int len)

; // base 0, 1, 2,... 10;

int i;

target = malloc(len * sizeof(int) + 1);

for (i = 0; i < 10 + 1; i ++)

c[i] = 0;

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

c[b[i]] ++;

for (i = 0; i < 10 + 1; i ++)

c[i + 1] += c[i];

for (i = len - 1; i >= 0 ; i --)

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

a[i] = target[i + 1];

free(target);

return 0;

}int num_n(int n, int base, int id)

int base_sort(int arr, int len, int width)

arr_r = malloc(len * sizeof(int));

if (!arr_r)

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

arr_b[i] = arr[i];

for (j = 0; j < width; j++)

count_sort2(arr, arr_r, len);

}free(arr_r);

free(arr_b);

return 0;

}int main()

;for (i = 0; i < sizeof(arr) / sizeof(int); i ++)

printf("%d ", arr[i]);

printf("\n----------\n");

base_sort(arr,  sizeof(arr) / sizeof(int), 1);

for (i = 0; i < sizeof(arr) / sizeof(int); i ++)

printf("%d ", arr[i]);

printf("\n----------\n");

base_sort(arr,  sizeof(arr) / sizeof(int), 2);

for (i = 0; i < sizeof(arr) / sizeof(int); i ++)

printf("%d ", arr[i]);

printf("\n----------\n");

base_sort(arr,  sizeof(arr) / sizeof(int), 3);

for (i = 0; i < sizeof(arr) / sizeof(int); i ++)

printf("%d ", arr[i]);

printf("\n----------\n");

}完整的答案, 要測試hash要改一下main函式。

結果是503 87 512 61 908 170 897 275 653 426

170 61 512 503 653 275 426 87 897 908

503 908 512 426 653 61 170 275 87 897

61 87 170 275 426 503 512 653 897 908

2樓:灬愛爬樹的魚

。。。。。。。。。。。。。 無圖無j8

c語言資料結構與演算法要掌握哪些知識,請詳細說明?

3樓:幻影

太多了,棧,佇列,指標,結構體,共同體(知道一下就行了),還有鏈式的。排序演算法,查詢演算法,經典的我就不說了吧,應該知道的。還有遞迴方法,再深一些,剪枝演算法,動態規劃等。

4樓:匿名使用者

資料結構 就是儲存資料的。

演算法就是一個邏輯

5樓:勞斯萊斯丨

常量變數 資料的型別(整型,實型,字元型)和用法。演算法嘛,記住各個運算子的用法和優先等級

請問大學學習資料結構與演算法(c語言版)需要多強的c語言基礎?

c語言與演算法和資料結構的關係

6樓:匿名使用者

資料結構的主要作用是幫助你提升自己的程式設計思維!使你編寫程式的時候有一個好的思維和框架!使你寫的**和程式有一個好的框架!

資料結構研究的是資料的邏輯結構、儲存結構(物理結構)和資料的運算.其中的資料運算就是指演算法

演算法只是具體的實現步驟的指令集合!但是演算法也是資料結構最重要的一部份!設計一個好的演算法可以提高自己程式的執行效率!

(演算法不一定要求能夠在計算機上直接執行,但程式必須要求能在計算機中執行)

c語言只是對演算法或者資料結構的描述!描述資料結構和演算法不侷限於c語言,也可以是c++語言和其他的計算機語言甚至也可以用人的自然語言!

所以只是說學習好c語言能夠使自己學習的資料結構理論更好的在計算機中描述和表達!

7樓:匿名使用者

肯定是資料結構啦,資料的邏輯結構決定了演算法,資料的儲存結構決定了如何實現演算法。但是我覺得還是要了解一點c的基礎知識比較好。因為資料結構裡用的語言不是嚴格的c語言而是一種類c的解釋語言。

有c更有助於你理解資料結構。而且若是你想更進一步發展的話,比如考研資料結構就是必考的一門,所以資料結構很重要!!

8樓:匿名使用者

程式設計 = 演算法 + 資料結構 ,至於c語言只是一種工具

9樓:**頁

① 不要認為單獨學c很難真正編寫出程式。

② 不要太認為你沒學資料結構和演算法難以解決實際程式設計問題。

③ c語言只要你熟練掌握,這就是你學data structure and algorithms 的基礎。

④ 學好數構和演算法的前提是:你c語言用得比較熟練了(特別是指標、複合變數、陣列的程式設計運用)

⑤ 最後,你只要看一本關於資料結構和演算法的書就夠了《演算法導論》(國外的那本),如果要深入搞懂它,最好看它之前看knuth的一本《concrete mathematics》。演算法導論算是演算法與資料結構的聖經了,裡面充分講了演算法和資料結構的大部分理論和實踐。

⑥另外,演算法和資料結構是有深刻關係的,但是你完全可以學演算法的時候不用複雜資料結構就能解決大部分問題;或者不用複雜演算法,單憑構造複雜資料結構解決複雜問題。

c語言裡資料結構的問題,c語言裡資料結構的一個問題。。

1 typedef struct list 這裡的list只是一個起的名字,如int是整形,list 是這個結構體的型別。下面的list就是 int i list就是那個i 2 定義的時候沒有下一個節點,一般都是用 p next null 3 書上一般給的都是偽 在實際寫程式中 自己要結合起來才能執...

請教一道C語言的資料結構題目

有錢買不起房子 status initstack sqstack s status push sqstack s,selemtype e s top e return ok status pop sqstack s,selemtype e selemtype gettop sqstack s sta...

學C語言是先看演算法還是看資料結構,暑假準備啃一本書,但不知是看演算法還是資料結構。我的C語言教材已經看完

資料結構。一般大學課程設計都是先開c語言再開資料結構最後開演算法。理解資料儲存是更基礎的東西。 先看資料結構在看演算法,其實有有些書是資料結構和演算法一起講的,他就是講了一種資料結構然後對應講點相關的演算法這樣子的,演算法是建立在資料結構之上的,演算法是比較廣的。 其實樓主應該要先知道記憶體 和 c...