單選題
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 儲存結構就是物理結構,順序儲存,鏈式儲存,索引儲存 雜湊表儲存 優點分別是 不使用額外的空間 方便插入刪除 方便插入刪除 方便查詢 缺點分別是 插入刪除,要進行大...