本文共 705 字,大约阅读时间需要 2 分钟。
顺序表
一维数组
查找、插入、删除
C
init printList
insert
x插入到下标为k的位置
插入的下标可以是最后一个元素位置(length-1)的后一个(length)
delete
C++
在C++里迭代器是连续的,v.begin+2代表0号元素往后挪两个位置.
这里的insert 第一个参数必须是一个迭代器。
删除
JAVA
插入
删除
链表
C语言
头指针,在第一个位置插入节点会改变头指针的值。
头结点,在第一个位置插入新的结点,改变的只是头结点next域的值,并不会改变指向头结点指针的值。
typedef给指向结构体的指针起外号。
init 传的是指针的地址 所以用struct Node** p 承接
getLength 值传递,函数里head=head->next 只是改变的局部变量
printList
同样是值传递
插入
- 插入的位置是个小于1的数字, 则直接返回0
- 插入如果是第一个位置 链表原来没有结点,新的结点t->next = null;(创建结点的时候就已经初始化了) 链表原来有其他结点,则必须设置 t->next = *phead 否则链表将只有一个结点。
- 插入的位置大于1,(count遍历前就设置为1) 找不到k-1的位置 一直遍历到最后一个结点,p = null ,count 也没有到k-1.直接输出0 可能找得到k-1的位置,从第一个结点往后遍历,不为空就count++,直到count = k-1(找到k-1的位置),指针指向第k-1个结点后,先栓新绳子,再解开旧绳子。
删除
删除操作可能会改变链表的头指针(删除第一个结点的时候),所以
栈
队列
转载地址:http://uavrn.baihongyu.com/