zoukankan      html  css  js  c++  java
  • 我理解的顺序表和链表存储

    写点什么东西对自己总有好处,证明自己还在努力的学习。

    每天的积累总对自己有好处。今天就来总结一下我们的常用的数据结构。

    1.顺序表存储结构(典型的数组)

         原理:顺序表存储是将数据元素放到一块连续的内存存储空间,存取效率高,速度快。但是不可以动态增加长度。

         优点:存取速度高效,通过下标来直接存储。

         缺点:1.插入和删除比较慢,2.不可以增长长度。

                    比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新排一次顺序。

        时间性能 :查找  O(1) ,插入和删除O(n)。 

    2.链表存储结构

          原理:链表存储是在程序运行过程中动态的分配空间,只要存储器还有空间,就不会发生存储溢出问题。

          优点:插入和删除速度快,保留原有的物理顺序,比如:插入或者删除一个元素时,只需要改变指针指向即可。

          缺点:查找速度慢,因为查找一个元素时,需要从开始节点一个一个节点去查找元素访问。

          时间性能 :查找  O(n) ,插入和删除O(1)。

    1.从它们的存储优缺点来看,各自有各自的使用场景,比如:频繁的查找却很少的插入和删除操作可以用顺序表存储,如果频繁的插入和删除操作很少的查询就可以使用链表存储。

    2.当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。而如果事先知道线性表的大致长度,比如一年12月,一周就是星期一至星期日共七天,这种用顺序结构效率会高很多。

    注:后续java代码会跟进。希望能对大家有帮助。

  • 相关阅读:
    类变量、成员变量、实例变量、局部变量、静态变量、全局变量的解释
    String的属性和方法
    数组的扩容
    以下实例演示了如何通过 List 类的 Arrays.toString () 方法和 List 类的 list.Addall(array1.asList(array2) 方法将两个数组合并为一个数组
    数组获取最大值和最小值
    Java字符串反转
    IO-3
    IO-2
    IO流
    泛型、MAP集合
  • 原文地址:https://www.cnblogs.com/xubiao/p/4712725.html
Copyright © 2011-2022 走看看