码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构--树(中)--线性结构之习题讲解

时间:2015-08-26 15:13:27      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

线性结构之习题讲解

【例】逆转链表

pack这个系统是黑盒测试,不管你代码写成什么样子,只要结果对就可以。Java

链表是不是只在C和C ++里面有用呢?因为Java里面是没有指针的。结构数组也是可以的。

什么是抽象的链表呢?

链表需要有块地方存数据,有块地方存指针—下一个结点的地址。

单链表的逆转

技术分享

  • 可以加一个头结点(个人习惯?)
  • new指的是新的已经逆转好的链表的头结点的位置

  • old指的是当前还没有完成逆转老链表头结点的位置

  • tmp是指要保存的结点,防止丢掉

 

倒过来逆转,从1,2开始逆转,但是去掉2指向3的结点而把2指向1的时候,3结点会丢失掉,后面的链表也都全丢掉了,所以,先要把3保存下来。

技术分享

单链表逆转的标准模版 伪代码

Ptr Reverse(Ptr head, int K){
    int cnt = 1;
    new = head->next;
    old = new->next;
    while (cnt < K)
    {
        tmp = old->next;
        old - next = new;
        new = old;
        old = tmp;
        cnt++;
    }
    head->next->next = old;
    return new;
}

 

这个是 单链表逆转的标准模版 ,但是pack这个系统是黑盒测试的,

技术分享

还可以用堆栈,

技术分享

 测试数据

  有尾巴不反转

  地址取上下界

  正好全反转

   K=N全反转

  K=1不用反转

  有多余结点

  最大,最小

  边界测试。

 

 

 

 

数据结构--树(中)--线性结构之习题讲解

标签:

原文地址:http://www.cnblogs.com/zrui513/p/4760178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!