3.3.1:线性链表
A.链表初始化:
B.建立单链表:
3.3.2:线性链表的运算
单链表的查找:
C.查找是否存在第i个节点
D.按值查找链表
单链表的插入:
E.前插
F.后插
G.单链表的删除:
H.单链表的逆序:
结构1:head头指针->头结点+a1+a2+a3.....使链表第一个位置的操作一致,也使对空链表 和非空链表的处理一致。
结构2:head头指针->a1+a2+a3.....链表第一个位置的操作和其他位置的操作不一致
结构1:A.初始化很重要!
B.为第一个节点或为最后一个节点(方便)
D.典型的 while(p!=NULL&&p->data!=key){p=p->next;}
E.while(p!=NULL&&j<i-1){p=p->next;j++}
j= 0 1 2 3 i-2 i-1 i(在i-1和i之间插入)
p-> 头结点 a1 a2 a3 p-1 p (p最后要移动到这儿!把p和s连接)
G.也要定位到i-1
H.原来: S -> P
后来: S <- P
只改变逻辑顺序!
带头节点单链表建立算法(3-8,3-9).cpp
单链表的查找操作(3-10,3-11).cpp
单链表的插入操作(3-12,3-13).cpp
单链表删除算法(3-14).cpp
单链表逆序算法(3-15).cpp