1. 參考文章
2. 測試**
view code
1 #include 2 #include 33. 注意事項: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 }
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...