推荐一个算法网站
推荐一个算法网站,本文部分内容来自visualgo
里面有十分全的算法:
搜索(Search)
假如我们有一个这样的链表:
分别是[30, 6, 54, 3, 7, 50]
找到元素
如果我们要返回元素3的索引,那么,伪代码大概如下:
if empty, return NOT_FOUND
index = 0, temp = head
while (temp.item != v)
index++, temp = temp.next
if temp == null
return NOT_FOUND
return index
/* 来自visualgo.net */
首先,锁定到链表的头部,查找元素为3
的索引
将30
和输入的数字3
进行比较,如果30
等于3,那么直接返回30
索引,如果没有,就继续循环,直到找到为止。如果循环到了尾部还没有找到,就返回notfond。
插入
如果要在第二个位置上插入80
,那么伪代码如下:
Vertex pre = head
for (k = 0; k < i-1; k++)
pre = pre.next
Vertex aft = pre.next
Vertex vtx = new Vertex(v)
vtx.next = aft
pre.next = vtx
删除
如果要删除第二个元素,伪代码如下:
if empty, do nothing
Vertex pre = head
for (k = 0; k < i-1; k++)
pre = pre.next
Vertex del = pre.next, aft = del.next
pre.next = aft // bypass del
delete del