資料結構第二版(朱昌傑版)習題2答案

2021-09-13 19:27:02 字數 1290 閱讀 2382

單選題

1-10 acadb,dbdab

難點簡述:就第一題需要說明一下,直接特殊值參考,n-1,就很過分了,當n=1時,是不是就不需要比較了?so,a

演算法設計題:

1、求乙個不帶頭節點的單了表中的節點個數

int countnode(linklist l)

return count;

}

秒殺

2、求乙個帶頭節點的單鏈表中的節點個數(忍住,這是多鄙視)

int countnode(linklist l)

return count;

}

3、在乙個單鏈表中的值為y的節點前面插入乙個值為x的節點,即使值為x為新節點成為y節點的前驅節點

void inserty(linllist l,int y,int x)

if(p->data==y) q->next=k; k->next=p;

}

4、設計乙個順序表中的各個結點值是否有序,判斷有序或者,可以直接判斷,第乙個結點和後面對比是不是最大或者對小,然後繼續往後面移動,演算法時間複雜度大概為n^2;

void issort(linkllist l)

q=q->next;

} p=p->next;

q=p->next;

}}

5、利用單鏈表原來的結點空間將乙個單鏈表進行就地逆轉(我的blog裡面有寫過的,可以直接參考,這裡是沒有經過編譯器編譯的,純手寫)

void reverselinklist(linklist l)

}

6、將乙個鍊錶裡面的偶數留下,奇數給另乙個鍊錶且保持原來的順序:

解法:直接一層判斷,插入,**就不貼了;

7、刪除所有大於x和小於y的值;

解法:關鍵是留p指向前乙個q,進行刪除操作;q-next=p->next; over

8.插入乙個數值為x,到遞減的乙個鍊錶裡面:

直接一層迴圈,判斷p->data>x;p->next->next10、單鏈表的排序

11、兩個有序鍊錶合併(easy)

指標後移++,就是這樣dei

q、p、k;

12、兩層迴圈,拿出重複的值或者兩個while

13、雙鏈表、插入,直接進入後繼和前驅

14、設計乙個從右往左列印雙向鍊錶

資料結構第二版(朱昌傑版)一

資料結構基本概念,包括邏輯結構 物理結構,這本書一切 都是以邏輯演算法,進行計算,具體的物理結構由編譯器完成 資料 是對客觀事物的符號表示,是電腦程式加工的原料 資料元素 是資料的基本單位,通常由多個資料項組成的,也就是和類的概念很像,資料項就是等同於屬性 資料結構 也就是說,資料元素之間相互的有一...

資料結構第二版(朱昌傑版)棧和佇列二

基本操作 初始化棧 initstack s 判斷棧空 emptystack s 判斷棧滿 stackfull s 獲取棧頂元素 gettop s 進棧 push s 出棧 pop s 正片開始 初始化棧 int initstack sqstack s 結構體先宣告一下 define maxsize ...

資料結構第二版(朱昌傑版)補第一章習題答案

1 資料結構是資料資料元素和資料之間的關係總稱 2 區別在於幾對幾的關係,集合無,線性結構1v1,樹形結構1vn,圖形結構n v n 3 儲存結構就是物理結構,順序儲存,鏈式儲存,索引儲存 雜湊表儲存 優點分別是 不使用額外的空間 方便插入刪除 方便插入刪除 方便查詢 缺點分別是 插入刪除,要進行大...