鍊錶 10 移除序列指定位置元素(鍊錶)

2021-10-19 03:44:22 字數 1153 閱讀 2699

使用帶頭結點的單鏈表程式設計:

一群學生排成一行,輸入乙個位置,將該位置的學生移除。

第乙個學生的位置為1,第n個學生的位置為n。

第一行輸入學生資訊:

第乙個整數n(0<=n<=100),表示共有n個學生,其後有n個整數,表示n個學生的學號

第二行及以後各行,每行輸入乙個整數,表示要移除的學生位置。

每次移除乙個學生後,在一行裡輸出完整的學號序列,以head開頭,以tail結尾,學號之間以「-->」分隔(參見範例)。

如果需要移除學生的位置不合法,則輸出「invalid」(不包括雙引號)

3 4 5 10103

021

invalid

head-->4-->5-->tail

invalid

head-->4-->tail

head-->tail

首先要徹底理解鍊錶的延長,切割,鏈結。然後就可以輕鬆秒殺。

#include #include #include #include #include #include #include using namespace std;

struct listnode

;int lenght(listnode* head)

return l;

}void output(listnode* head)

cout << "tail";

cout << endl;

return ;

}int main()

//p2->next = null;

//cout << lenght(head) << endl;

while (cin >> where)

if (where<1 || where>lenght(head))

if (where == 1 && lenght(head) == 1)

p1 = head;

int t = 0;

while (1)

if ((p1->next != null))

p1 = p1->next;

else

break;}}

return 0;

}

反轉鍊錶指定位置

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。首先找到要反轉的位置,從n位置開始。要反轉乙個結點cur 反轉2 4位置結點 到這裡還沒有結束 還需要將1的next改為4結點 2的next改為5結點 所以最開始之前,必須借用front引用儲存m位置的前驅prev。找到m位置後,使用引用rea...

鍊錶之指定位置插入

指定位置插入 做這種查詢類的插入,先不要著急建立節點,要考慮沒找到的情況,沒找到就不需要建立節點 include struct node 建立頭節點 struct node createhead headnode next null return headnode 建立節點,方便使用者插入資料 st...

移除鍊錶元素

刪除鍊錶中等於給定值 val 的所有節點。示例 輸入 1 2 6 3 4 5 6,val 6 輸出 1 2 3 4 5 兩個引用,乙個指向頭結點,乙個指向頭結點的下乙個結點,要考慮頭結點為null的情況。遍歷鍊錶,當遇見和val相等的數,就直接把它刪掉,好要考慮當第乙個節點就是要刪除的節點時,直接h...