Chinaunix首页 | 论坛 | 博客
  • 博客访问: 158062
  • 博文数量: 66
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-23 15:21
文章分类

全部博文(66)

文章存档

2016年(66)

我的朋友

分类: LINUX

2016-05-27 15:07:13

        求表长操作就是计算单链表中数据结点(不含头结点)的个数,需要从第一个结点开始顺序依次访问表中的每一个结点,为此需要设置一个计数器变量,每访问一个结点,计数器加1,直到访问到空结点为止。算法的时间复杂度为O(n)。


        需要注意的是,因为单链表的长度是不包括头结点的,因此,不带头结点和带头结点的单链表在求表长操作上会略有不同。对不带头结点的单链表,当表为空时,要单独处理。


参数:头结点
void Print(LinkList L)            //计算单链表的长度,然后输出单链表
{
         int num=0;    
         LinkList p;
         p=L->next;                 //"p"表示除了头结点之外的第一个节点

         while(p)                     // ”最后一个节点的->next = NULL“
         {
                  num++;
                  printf("%d ",p->data);
                  p=p->next;
         }

         printf("\n长度为%d:\n",num);
}


阅读(5617) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~