zoukankan      html  css  js  c++  java
  • Java数据结构和算法(一)线性结构

    Java数据结构和算法(一)线性结构

    数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html)

    线性表 是一种逻辑结构,相同数据类型的 n 个数据元素的有限序列,除第一个元素外,每个元素有且仅有个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。

    一、基本概念

    线性表具有以下特点:

    • 元素个数有限
    • 逻辑上元素有先后次序
    • 数据襟型相同
    • 仅讨论元素间的逻辑关系

    线性表分类

    (1) 数组和链表

    选项 数组 链表
    读取 O(1) O(n)
    插入 O(n) O(1)
    删除 O(n) O(1)

    从上表可以看出数组的读取复杂度为 O(1),插入和删除为 O(n),链表则恰好相反。即数组读快写慢,链表读慢写快。

    数组的优点:一是随机访问性强;二是查找速度快。
    数组的缺点:一是插入和删除效率低;二是可能浪费内存;三是内存空间要求高,必须有足够的连续内存空间;四是数组大小固定,不能动态拓展。

    链表的优点:一是插入删除速度快;二是内存利用率高,不会浪费内存;三是大小没有固定,拓展很灵活。
    链表的缺点:一是不能随机查找,必须从第一个开始遍历,查找效率低。

    (2) 单链表、双向链表和循环链表

    单链表和双向链表的区别在于单链表的每个节点只保存后继节点,而双向链表即保存了后继节点也保存了前驱节点。而循环链表的第一个节点的指针指向最后一个节点,最后一个节点的指针指向第一个节点,循环链表又分为循环单链表和循环双链表。

    单链表和双向链表

    基本概念:数组和链表的区别,单链表,双向链表和循环链表单链表基本操作实战之单链表反转,单链表取中间值实战之合并两个有序链表面试真题:奇数位升序,偶数位降序链表排序面试真题:单链表实现归并排序


    每天用心记录一点点。内容也许不重要,但习惯很重要!

  • 相关阅读:
    php单点登录
    【Docker】docker镜像构建
    【测试经验】网关中间件测试
    【Jmeter】调用Dubbo方法
    【计算机网络】TCP三次握手与四次挥手
    【操作系统】死锁
    【操作系统】线程与进程
    【计算机网络】TCP/IP
    【计算机网络】Http与Https
    【二叉树】二叉树的创建与遍历
  • 原文地址:https://www.cnblogs.com/binarylei/p/10115881.html
Copyright © 2011-2022 走看看