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...