迴圈鍊錶的插入操作

2022-09-04 03:03:06 字數 928 閱讀 9967

1. 參考文章

2. 測試**

view code

1 #include 2 #include 3

4using

namespace

std;56

struct

node715

};16

17void insert(node *& anode, int

x)

2324 node *p =anode;

25 node *prev =null;

26do

while (p != anode); //

如果只有乙個節點或者所有值都相同,就需要這個條件退出迴圈

3435 node *newnode = new

node(x);

36 newnode->next =p;

37 prev->next =newnode;

38//

如果插入的是最小值,需要更改頭指標

39if ((prev->data > p->data) && (x < p->data ))

4043}44

45int

main()46;

49int a[alength]=;

50for (int i=0;i)

5154

assert(phead);

55 node* ptmp=phead;

56do

57 while (ptmp!=phead);

61 cout<

62 }

3. 注意事項:

1. 考慮到每一種情況。並可以把幾種情況合併成一種情況。

2. 這裡使用do while迴圈比較方便。

3. 簡潔的**書寫方式。

迴圈鍊錶插入節點

由於迴圈鍊錶的迴圈特性,所以頭節點和尾節點可以被當成一般節點。所以,我們可以在寫迴圈鍊錶節點插入的函式中,可以呼叫自定義的函式 如下 void insert node list t insert node,list t prev node,list t next node 當我們寫插入函式的時候可以...

迴圈有序鍊錶的插入

給定迴圈公升序列表中的乙個點,寫乙個函式向這個列表中插入乙個新元素,使這個列表仍然是迴圈公升序的。給定的可以是這個列表中任意乙個頂點的指標,並不一定是這個列表中最小元素的指標。如果有多個滿足條件的插入位置,你可以選擇任意乙個位置插入新的值,插入後整個列表仍然保持有序。如果列表為空 給定的節點是 nu...

鍊錶插入操作

輸入格式 第一行輸入是乙個整數 n 1 n 100 表示一共要執行 n 次插入操作。接下來輸入 n 行,每行輸入兩個整數 p 和 q 0 p,q 100 其中 p 表示結點插入鍊錶中的位置 從下標為 0 開始 q 表示插入元素的值,兩個整數之間用乙個空格隔開,行末沒有空格。輸出格式 輸出一共 n 1...