單向鍊錶 三 在指定位置插入新的節點

2021-06-23 00:54:35 字數 1524 閱讀 7183

1、要向鍊錶中插入新的資料,就要插入乙個新的節點,下面是一幅示意圖:

2、說明:原始鍊錶為1 -> 2 -> 3 -> 4 -> null, 新增乙個資料「5」至第3個節點,只要使第2個節點指向新節點(值為5的節點),使新節點指向原來的第3個節點(值為3的節點)就行了。

3、更通俗地講,就是在「2」與「3」之間的「紅色箭頭」上新增乙個」5「,紅箭頭變為兩個藍箭頭。

4、實現函式:

tagnode* insertnode(tagnode *phead, int location, int value)

// 如果要插入的是頭結點(location == 1)

if (location == 1)

ncount++;

// 插入非頭結點

while (ptemp->pnext) // 注:當前節點為(ptemp->pnext),而ptemp為當前節點的前乙個節點

else

}printf("位置%d超出鍊錶節點數,是否新增到鍊錶末尾(y/...):\n", location);

scanf("%c", &choose);

getchar();

if (choose == 'y')

return phead;

}

void insertnode(tagnode **phead, int location, int value)

// 如果要插入的是頭結點(location == 1)

if (location == 1)

ncount++;

// 插入非頭結點

while (ptemp->pnext) // 注:當前節點為(ptemp->pnext),而ptemp為當前節點的前乙個節點

else

}printf("位置%d超出鍊錶節點數,是否新增到鍊錶末尾(y/...):", location);

scanf("%c", &choose);

getchar();

if (choose == 'y')

}

5、main函式中呼叫:

int _tmain(int argc, _tchar* argv)

6、執行結果:

在指定位置插入新列

來由 現有一張表test a,b,c 怎樣在a和b列之間插入新列d 希望結果 test a,d,b,c vivianfdlpw 2005.9 引用請保留此資訊 建立測試環境 create table test a varchar 20 b varchar 20 c varchar 20 go 允許系...

在指定位置插入新列

來由 現有一張表test a,b,c 怎樣在a和b列之間插入新列d 希望結果 test a,d,b,c vivianfdlpw 2005.9 引用請保留此資訊 建立測試環境 create table test a varchar 20 b varchar 20 c varchar 20 go 允許系...

在指定位置插入新列

來由 現有一張表test a,b,c 怎樣在a和b列之間插入新列d 希望結果 test a,d,b,c vivianfdlpw 2005.9 引用請保留此資訊 建立測試環境 create table test a varchar 20 b varchar 20 c varchar 20 go 允許系...