一:单链表的读取
获得链表第i个数据,算法思路:
1.声明一个指针p指向链表的第一个结点,初始化j从1开始;
2.j<i时,遍历链表,p指针后移,j+1;
3.到链表尾部p为空或者j>i时,说明第i个节点不存在;
4.若查找成功,返回结点p的数据。

二:单链表的插入

单链表第i 个数据插入结点的算法思路:
1.声明一指针p 指向链表头结点,初始化从1开始;
2.当j<i 时,就遍历链表, 让P 的指针向后移动,不断指向下结点,累加1;
3.若到连表末尾p 为空,则说明第i个结点不存在;
4.否则查找成功, 在系统中生成一个空结点s;
5.将数据元素e 赋值给s->data;
6.单链表的插入标准语句s->next=p->next; p- >next = s

三:单链表的删除

单链第1个数据删除结点的算法思路:
1.声明一指针p指向链表头指针,初始化j 从1开始;
2.当j<i 时,就遍历链表,让P 的指针向后移动,不断指向下一个结点,累加1;
3.若到链表末尾p为空,说明第个结点不存在;
4.否则查找成功,将欲删除的结点p->next 赋值给9;
5.单链表的删除标准语句p->next=q->next;
6.将q 结点中的数据赋值给e,作为返回;
7.释放q 结点;

从整个算祛来说,我们很容易推导出: 它们的时间复杂度都是0(n)。
1400

被折叠的 条评论
为什么被折叠?



