題目1:6-2 jmu-ds-單鏈表逆置
題目2:6-3 jmu-ds-鍊錶倒數第m個數
題目3:7-1 兩個有序鍊錶序列的合併
具體操作:
題目1:6-2 jmu-ds-單鏈表逆置
1.本題要求實現乙個函式,將給定單向鍊錶逆置,即表頭置為表尾,表尾置為表頭。鍊錶為帶頭結點鍊錶。
要實現函式有3個分別為:
2.設計思路:
void createlist(list &l,intn) p->next=null;
}
void reverselist(list &l)}
void3.**截圖:printlist(list l)
else
printf(
"null
");
}
題目2:6-3 jmu-ds-鍊錶倒數第m個數
1.已知乙個帶有表頭節點的單鏈表,查詢鍊錶中倒數第m個位置上的節點。
2.設計思路:
int find( linklist l, int3.**截圖 4.pta提交列表說明。m )
while
(p)
return p->data;
}
題目3:7-1 兩個有序鍊錶序列的合併
1.已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。
輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−表示序列的結尾(−不屬於這個序列)。數字用空格間隔。
在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格;若新鍊錶為空,輸出null
2.設計思路:
void init(linklist &l)
void listcreate(linklist &l)r->next =null;
}
void listprint(linklist &l)//3.**截圖 4.pta提交列表說明。列印有序鍊錶
}else
cout
<
null";
cout
<
}
主要是沒有在c++環境下編譯執行;
pta總分:133分
自評:1分
安排時間比較少,比較不滿意,課程越來越難,花的時間卻越來越少,還是得從基礎知識補起,有時間多花些在基礎上面,才有進步吧。
平時還要多去問問同學,多多瀏覽其他同學的部落格,發現自己的不足;
多打**,有些知識點理解了,可是沒去打過,到要親手打的時候,一臉懵逼;
當做長知識,
線性表是資料結構中最簡單的資料儲存結構,可以理解為「線性的表」。暫時不會用,沒了解太多。線性,是說資料在邏輯結構上具有線性關係。將具有線性關係的資料儲存到計算機中所使用的儲存結構稱為線性表。
線性關係指的是資料乙個挨著乙個,總體呈線性分布。就好比「老鷹捉小雞」遊戲中,小雞們全都手拉著手,它們之間的關係就可以稱為線性關係。
換句話說,線性表中的資料在邏輯結構上相互挨著(手牽手),中間沒有空隙。每個資料元素,在它的前面可以找到唯一乙個資料和它挨著,後面也只有乙個資料和它挨著。這樣,資料在邏輯結構呈線性分布,稱這樣的儲存結構為線性表。
用線性表儲存的資料有兩個特點:
儲存的資料本身的型別一定保持相同,是int型就都是int型,是結構體就都是一種結構體。
資料一旦用線性表儲存,各個資料元素之間的相對位置就固定了。
邏輯結構上相鄰的資料在實際的物理儲存中有兩種形式:分散儲存和集中儲存。
考慮到這兩種情況,線性表分為兩種,分別解決兩種情況下資料的儲存問題:
資料元素在記憶體中集中儲存,採用順序表示結構,簡稱「順序儲存」;
資料元素在記憶體中分散儲存,採用鏈式表示結構,簡稱「鏈式儲存」。
第02次作業 線性表
題目一 1.6 3 jmu ds 順序表刪除重複元素 25 分 2.設計思路 刪除函式 變數定義i,j表示計數。if l length 0 l長度 j 1 else 3.截圖 4.pta提交列表說明 1 應是鍊錶形式卻寫成結構體形式導致編譯錯誤。eg l.data i a i 應改為l data i...
第02次作業 線性表
1.首先定義i,j兩個變數,i用來記錄陣列data的下標,而j用來記錄在區間 mind,maxd 之中的元素個數。2.當i 0到i l las 1t時,如果l data i mind l data i 不然 l data i j l data i i加一 最後線性表的長度減去j。返回 鍊錶l 解決方...
部落格作業02 線性表
給定乙個順序儲存的線性表,請設計乙個演算法查詢該線性表中最長的連續遞增子串行。例如,1,9,2,5,7,3,4,6,8,0 中最長的遞增子串行為 3,4,6,8 查詢最長連續遞增子串行函式 定義整型變數i,j表示迴圈變數,k用來作找到後新陣列下標 定義整型變數 maxlength 1 maxleng...