第02次作業 線性表

2022-07-15 10:18:16 字數 1919 閱讀 5455

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;

解決方法:一開始沒有考慮表是空表,直到提交,看到測試點才發現,在加入判斷表是不是空的時候,又出現錯誤,經過多次的修改,才正確。

1.先定義 init(linklist &l);//初始化鍊錶

read(linklist &l);//讀入函式

merge(linklist la,linklist lb,linklist &lc);//合併函式

print(linklist l);//輸出函式

這四個函式

2.定義三個指標la,lb,lc;

初始化 init(la);init(lb);init(lc);這三個鍊錶。

用 read()函式讀入資料

用merge()函式合併

輸出合併的鍊錶。

3.核心函式 void merge(linklist la,linklist lb,linklist &lc)

定義三個指標 pa,pb,pc;

用pa指向la->next;pb指向lb->next;

lc指向pc,lc指向la;

while(pa&&pb)

else

}pc->next=pa?pa:pb;//看pa和pb那個的為空,把不為空的複製到鍊錶lc。

解決方法:1.開始是沒有理解鍊錶的頭插法,寫出的**是錯誤的,經過查詢資料,問同學,了解頭插法。才把**改對。

解決方法:開始是越界,導致段錯誤,然後用尾插法來實現,但當表為空時,就不知道怎麼弄,最後用頭插法,就解決了。

線性表中元素的儲存不一定是連續的,還可以占用任意的、不連續的物理

儲存區域。與順序表相比,鍊錶的插入、刪除不需要移動元素,給演算法的效率帶來較大的提高。線性表這張講鍊錶的節點結構、靜態與動態鍊錶的概念、鍊錶的基本運算(如求表長、插入、查詢、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向迴圈鍊錶的定義、結構、功能和基本演算法。難度有點大。

第02次作業 線性表

題目1 6 2 jmu ds 單鏈表逆置 題目2 6 3 jmu ds 鍊錶倒數第m個數 題目3 7 1 兩個有序鍊錶序列的合併 具體操作 題目1 6 2 jmu ds 單鏈表逆置 1.本題要求實現乙個函式,將給定單向鍊錶逆置,即表頭置為表尾,表尾置為表頭。鍊錶為帶頭結點鍊錶。要實現函式有3個分別為...

第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,9,2,5,7,3,4,6,8,0 中最長的遞增子串行為 3,4,6,8 查詢最長連續遞增子串行函式 定義整型變數i,j表示迴圈變數,k用來作找到後新陣列下標 定義整型變數 maxlength 1 maxleng...