Fork me on GitHub

链表

线性表(静态链表)

1.定义

1
2
3
4
5
6
7
8
9
struct node
{

int value;当前元素值

int next;该元素下一元素的下标(体现了链的概念)

}arr[........];
int top;//实际元素个数

2.插入(将元素q插入到第p个元素后面)

1
2
3
4
5
6
7
top++;//新开一个空元素

arr[top].value=q;//将所要插入的元素值放到该空元素内

arr[top].next=arr[p].next;//插入前第p元素的next在插入后就是q的下一个元素的下标

arr[p].next=top;//所插入元素的前一个元素也就是p的next所指向的即为所插入元素的下标,而前面我们将其放在top位置上则arr[p].next就要指向top

3.删除(将p的下一个元素删除)

1
2
3
4
int temp=arr[p].next;//提取下一元素的下标

arr[p].next=arr[temp].next;//将p的next直接指向下下一个元素的下标,就把p下一个元素给跳过;
PS:千万注意链表中的下标和next一定要区分开!