如何實現單鏈表的增刪操作

2021-10-06 22:17:24 字數 1760 閱讀 8347

當節點只包含其後繼節點的資訊的鍊錶就被稱為單鏈表。

可以使用任意一組儲存單元來儲存單鏈表中的資料元素(儲存單元可以是不連續的),而且除了儲存每個資料元素的ai的值外,還必須儲存只是其後繼元素的資訊。

class node 

}

鍊錶中最重要的操作就是在鍊錶中插入和刪除操作

單鏈表的插入操作是將值為x的新節點插入到單鏈表的第i個節點的位置上,即插入到資料元素ai-1的後繼節點,具體步驟如下

1)找到ai-1的引用(儲存位置)p。

2)生成乙個資料域為x的新節點s。

3)設定 s.next=p.next;

4)設定 p.next=s;

單鏈表的刪除操作是將單鏈表的第i個節點刪去。其具體步驟如下:

1)找到ai-1的儲存位置p。

2)令p.next指向ai的直接後繼節點(即把ai從鏈上摘下)ai+1;

public

class

mylinkedlist

node tmp = head;

while

(tmp.next != null)

//add mode to end

tmp.next = newnode;

}/**

** @param index 刪除第index個節點

* @return 成功返回true,失敗不合法返回false

*/public boolean deletenode

(int index)

//刪除鍊錶中的第乙個元素

if(index==1)

int i=2;

node prenode = head;

node curnode = prenode.next;

while

(curnode != null)

prenode = curnode;

curnode = curnode.next;

i++;}

return

true;}

/** *

* @return 返回單鏈表的長度

*/public

intlength()

return length;

}/**

* 對鍊錶進行排序,從鍊錶的第乙個結點開始,將後面節點一次和當前節點進行比較,保證單鏈表在curnode之前的節點是有序的

* @return 返回排序後的頭節點

*/public node orderlist()

nextnode = nextnode.next;

} curnode = curnode.next;

}return head;

}/**

* 將單鏈表節點資訊全部列印

*/public

void

printlist()

}public

static

void

main

(string[

] args)

}

listlen = 3

before order

node

node

node

after order

node

node

node

單鏈表的增刪查改等操作實現

h ifndef link list define linklist include include include typedef int datetype typedef struct node node,pnode,list 初始化鍊錶和銷毀鍊錶 void initlinklist list ...

單鏈表的增刪改查操作

mark一下自己的學習過程,繼續堅持 linklist.cpp love created by wpln on 2018 11 8.include include include include using namespace std typedef struct studentstu,pstu d...

單鏈表實現增刪改查

include myhead.h 定義結構體表示單鏈表 struct siglelist 封裝鍊錶的初始化 struct siglelist list init 尾部插入 intinsert tail int newdata,struct siglelist head 中間插入,把newdata插入...