二.从零写单链表的算法之遍历节点&删除节点&逆序节点

接上节:一.从零写单链表的算法之尾部&头部插入节点
http://blog.csdn.net/wangweijundeqq/article/details/79188813

一.单链表的算法之遍历节点

E:\Linux\0.C_DEMO\1.18_danlianbiao4

1、什么是遍历

(1)遍历就是把单链表中的各个节点挨个拿出来,就叫遍历。
(2)遍历的要点:一是不能遗漏、二是不能重复、追求效率。

2、如何遍历单链表

单链表的特点就是由很多个节点组成,头指针+头节点为整个链表的起始,最后一个节点的特征是它内部的pNext指针值为NULL。从起始到结尾中间由各个节点内部的pNext指针来挂接。由起始到结尾的路径有且只有一条。单链表的这些特点就决定了它的遍历算法。

==(3)遍历方法:从头指针+头节点开始,顺着链表挂接指针依次访问链表的各个节点,取出这个节点的数据,然后再往下一个节点,直到最后一个节点,结束返回。==

3.链表遍历节点过程分析图

这里写图片描述

4.代码实现:

//遍历单链表,ph为指向单链表的头指针,将遍历的节点数据打印出来
void bianli(struct node *ph)
{
    struct node *p=ph; //头指针的后面是头节点
    printf("---------start----------\n");
    while(NULL!=p->pNext)// 是不是最后一个节点
    {
        p=p->pNext;// 走到下一个节点,也就是循环增量
        printf("node data: %d.\n",p->data);
    }
    printf("------------end----------\n");
}
/**************单链表算法之遍历节点***********************/
int main(void)
{
    // 定义一个头节点,用于存链表的节点数
    struct node *pHeader=create_node(0);

     //调用该函数使链表尾部插入新的节点
     insert_head(pHeader,create_node(1));//头部插入
     insert_tail(pHeader,create_node(2));//尾部插入
     insert_head(pHeader,create_node(3));//头部插入

    // 访问链表头结点的有效数据 
    printf("header node data: %d.\n", pHeader->data);   

    //遍历访问单链表各个节点的有效数据
    bianli(pHeader);

    return 0;
}

二.单链表的算法之删除节点

E:\Linux\0.C_DEMO\1.19_danlianbiao5

1.为什么要删除节点?

(1)一直在强调,链表到底用来干嘛的?==用来存储数据==
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值