码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法(4)----->链表、二分搜索

时间:2018-02-03 13:13:19      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:操作   方法   序列   元素   数据结构与算法   div   算法   head   搜索   

 

 

1.  链表的基本概念

  1. 链表和数组一样都是一种线性结构;
    • 数组是一段连续的存储空间;
    • 链表空间不一定保证连续,是临时分配的;
  2. 链表的分类
    • 按方向:
      • 单链表:每个节点只能通过next指针指向下一个节点;
      • 双链表:除了可以用next指针之外,还可以用previous指针,指向前一个节点;
    • 按有无环:
      • 普通链表
      • 循环链表(首尾相接的链表,最后一个元素的next指针指向第一个元素;对于双链表,第一个元素的previous指针还需要指向最后一个元素)

2.  单链表的翻转操作

  1. 当链表为空或者长度为1时,特殊处理;
  2. 其他的单链表,采用如下方式:
    • 假设前面已经翻转好的部分头部为head,当前节点是now
      • 将now节点的next指针指向head;
      • 将now节点设置为新的翻转完成的节点的头部head now;
      • 将之前now节点的下一个节点的next指针,指向head now,如此类推~

3.  二分搜索常用场景

  1. 在有序序列中查找一个数;
    • 例如,给定一个数组arr,判断整数m是否在arr之中(思路:判断arr中间的数mid与m的大小关系,如果m>mid,则mid左边部分都小于m(因为有序),同样的方法,对mid与右半部分之间的元素再次选取mid2进行同样的搜索操作!每次搜索范围减半,如果最后搜索到0都没找到m,则m不在arr数组之中!返回false)
  2. 二分搜索还能用于无序序列之中;

 

数据结构与算法(4)----->链表、二分搜索

标签:操作   方法   序列   元素   数据结构与算法   div   算法   head   搜索   

原文地址:https://www.cnblogs.com/Mairr/p/8408476.html

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