单链表的创建初始化与基本操作
typedef struct Link{
int elem; // 代表数据域
struct Link *next; // 代表指针域,指向直接后继元素
}link; // link 为节点名,每个节点都是一个link结构体。
1.链表插入元素
– 同顺序表一样,向链表中增添元素,,根据添加位置不同,可分为以下3种情况:
- 插入到链表头部(头节点之后)
- 插入到链表中间的某个位置;
- 插入到链表末尾
插入元素两步操作:
- 将新结点的next 指针指向插入位置后的结点;p->next = q
- 将插入位置前结点的next指针指向插入结点; p= p->netxt
2.删除链表元素
– 同插入相同,需要进行以下两步操作:
1.将结点从链表中摘下来;q = p->next
2. 手动释放放结点,回收补结点占用的存储空间 p->next=p->next->next; free(q)
3.链表查找元素
– 在链表中查找指定数据元素,最常用的方法是:从表头依次遍历表中节点,用被查找元素与各节点数据域中存储的数据元素进行比对,直至比对成功或遍历至链表最末端的 NULL
4.链表更新元素
– 更新链表中的元素,只需通过遍历找到存储此元素的节点,对节点中的数据域做更改操作即可