链表中有两个关键的操作:创建和删除。今天我就对这两个操作进行介绍,
从这两个操作中学习到链表的基本用法。
1. Create
Create() 是一个链表基础,只有建立好链表才能对它进行相应的查找,删除 等。
基本算法:
1.初始化
head=NULL;
ls=new test;
cin>>ls->num;
头结点指向NULL, 创建一个节点,输入num。
le :这个指针用于记录最后一个在链表上的节点,非常useful.
2.进入循环,条件是num!=0.
1) 判断head==NULL,
如果为真,表明链表为空,
则将节点连接到head上。
否则将节点连到最后一个节点上。
2) 为后面的循环做准备
le前移:le=ls;
ls 开辟新节点,赋值: ls=new test; cin>>ls->num.
3.收尾
在之前多开辟出一个节点,要将其删除,另外就是le是指向最后一个节点的
,所以将le->next=NULL.
(此算法还有改进的地方,那就是可以先判断num是否为0 在决定是否开辟)
2. Delete
Delete 是在给定一个链表的头结点的指针和要删除的一个数,进而对其删除。
基本算法如下:
由于删除的时候要考虑三种情况:
1. 如果head为空,直接返回
2.如果删除的为首节点,则要将次节点的地址返回给head
3.剩下的情况就是中间和末尾的节点,