|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
对链表的操作有:增,删,改,查,初始化。这些操作书上都有,似乎也可以完全看得懂,但是真正写起代码来还是一卡一卡的,所以自己再重新敲了一遍,也发现了一点点小规律。
要想真正搞清楚,不会混乱,其实也没有那么难,将大的化小,有时候就清楚明了了。
在上面代码中,定义了头指针和尾指针,那为什么要定义两个指针呢?只定义一个指针不行吗?其实定义两个指针也是为了后面的方便,能够更好的理解。
初始化:在main函数中,一般都是要写对头结点的初始化的。
增:向链表中添加元素...emmm,咋填?
分解来看,有三种向链表中增加元素的方法:1.头插入 2.尾插入 3.给定位置插入
注意了:不管是什么方式插入,都有一样的操作:step 1:创建一个新的节点用来存需要插入的数据 step 2:将数据放进新创建的节点中 step 3:链接到链表上去
特别的,在任意给定位置插入新节点的时候,需要注意能不能找到这个位置。
删:删除要记住了:
//步骤:1先定义一个变量去记住要删掉的节点
//2.将头结点指向要删除的下一个节点
//3.将记住的节点释放掉同样的 ,删除也可以分成三个方法来删除:1.删头 2.删尾 3.任意删
这三种删除方式都有一个必须要判断的是:这个链表是不是空链表(如果是链表,那删除个啥???)
删头:删头的方式很简单,记住之后之间将头指针指向被删节点的下一个节点,然后释放记住的节点。
删尾:删尾相比较于删头复杂了一点点,但是也是很好理解的:要分成只有一个节点的情况和有多个结点的情况。
特别的,有多个结点的情况的删除,要找到尾节点的上一个节点(只有找到了尾节点的上一个节点,才能重定义尾指针)
任意删:任意删除给定位置的节点的时候,同样需要注意这个链表是不是空链表,并且需要判断能不能找到这个要删除的节点,如果找到了,再进行删除。
改:改的操作就很简单了,遍历整一个链表,如果找到了需要修改的位置,直接将该节点的数据域改成需要修改的值就可以了(需要注意的是,要写出找不到需修改节点的情况)
查:与改类似,略
删除整个链表:删除整个链表的时候,需要定义一个新的节点来记住要删除的节点,然后不断的后移,释放。
emmm,总之,还是要自己亲自动手操作才能完全掌握和理解滴~~
|
|