首页 > 其他分享 >顺序存储和链式存储

顺序存储和链式存储

时间:2025-01-21 10:09:55浏览次数:1  
标签:node 存储 nextNode head value 链式 LinkedNode 顺序存储

数据结构

数据结构是计算机存储、组织数据的方式

数据结构是指互相之间存在一种或多种特定关系的数据元素的集合

比如自定义的一个类也可以称为一种数据结构,类是一个自己定义的数据组合规则

数据结构简单来说就是人定义的存储数据和表示数据之间关系的规则

常用的数据结构

数组、栈、队列、链表、树、图、堆、散列表


线性表

线性表是一种数据结构,是有n个相同特性的数据元素组成的有限序列

比如数组、ArrayList、Stack、Queue、链表等等

顺序存储和链式存储是数据结构中两种存储结构


顺序存储

数组、Stack、Queue、List、ArrayList都是顺序存储

只是它们的组织规则不同

顺序存储就是用一组地址连续的存储单元依次存储线性表的各个数据元素


链式存储

单向链表、双向链表、循环链表都是链式存储

链式存储也叫链接存储,就是用一组任意的存储单元存储线性表中的各个数据元素


实现一个单向链表

class LinkedNode<T>
{
    public T value;
    public LinkedNode<T> nextNode;
    public LinkedNode(T value)
    {
        this.value = value;
    }
}
LinkedNode<int> node = new LinkedNode<int>(1);
LinkedNode<int> node = new LinkedNode<int>(2);
node.nextNode = node2;
node2.nextNode = new LinkedNode<int>(3);
class LinkedList<T>
{
    public LinkedNode<T> head;
    public LinkedNode<T> last;
    public void Add(T value)
    {
        LinkedNode<T> node = new LinkedNode<T>(value);
        if(head == null)
        {
            head = node;
            last = node;
        }
        else
        {
            //往最后一个节点后面add,再把新的最后节点变成新添加的节点
            last.nextNode = node;
            last = node;
        }
    }
    public void Remove(T value)
    {
        if(head == null)
        {
            return;
        }
        if(head.value.Equals(value))
        {
            head = head.nextNode;
            //如果本身就只有一个节点就需要把last也置空
            if(head == null)
            {
                last = bull;
            }
            return;
        }
        LinkedNode<T> node = head;
        while(node.nextNode != null)
        {
            if(node.nextNode.value.Equals(value))
            {
                node.nextNode = node.nextNode.nextNode;
                break;
            }
            node = node.nextNode;
        }
    }
}

增和删时,链式存储不用移动位置

查和改时,顺序存储用下表就可以得到元素,链式存储则需要遍历

标签:node,存储,nextNode,head,value,链式,LinkedNode,顺序存储
From: https://www.cnblogs.com/cannedmint/p/18665106

相关文章

  • C语言实现顺序存储线性表
    ////Createdbystevexiaohuzhaoon2025/1/20.///****线性表的顺序存储结构实现*特点:逻辑上相邻的元素,物理上也相邻**/#include<stdio.h>#include<stdlib.h>#defineMAXSIZE100//定义线性表的最大长度//1.定义图书结构体Booktypedefstr......
  • 栈的顺序存储代码
    #include<stdio.h>#include<stdlib.h>#pragmawarning(disable:4996)#defineelemTypeint#definemaxSize50typedefstructseqStack{   elemTypearr[maxSize];   inttop;}seqStack;voidinitStack(seqStack*stack){   for(inti=0;......
  • 将IDEA的setter代码模板改成链式setter
    setter传统模式UserInfouserInfo=newUserInfo();userInfo.setUserId("zhangsan");userInfo.setUserName("张三");userInfo.setAge(18);每一行都需要分号来隔断,影响编码效率。链式setterUserInfouserInfo=newUserInfo().setUserId("zhangsan").setUserNam......
  • 2025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一
    2025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一个伤害值,这些伤害值存储在数组power中,其中可能会有多个咒语具有相同的伤害值。使用某个特定伤害值为power[i]的咒语后,魔法师不能再使用伤害值为power[i]-2、power[i]-1、power[i]+1......
  • 2025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一
    2025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一个伤害值,这些伤害值存储在数组power中,其中可能会有多个咒语具有相同的伤害值。使用某个特定伤害值为power[i]的咒语后,魔法师不能再使用伤害值为power[i]-2、power[i]-1、power[......
  • Redis实训:社交关注关系存储任务
    一、实验目的1. 理解Redis的安装、配置及基本操作。2. 掌握Redis的不同数据类型及相应操作方法。3. 学习使用Java客户端连接Redis,并进行数据操作。4. 实践使用Redis存储社交关注关系的功能。二、实验环境准备1. JAVA环境准备:确保JavaDevelopmentKit(JDK)已......
  • GaussDB事务存储组件
    事务存储组件云原生数据库支持透明多写,所有节点对等,每个计算节点都可以读写全部的数据页面,事务在本节点执行,没有分布式事务。每个计算节点都有Localbufferpool,采用Remotememorypool扩展计算节点的内存,在多个计算节点之间共享buffer地址,避免页面在多个计算节点之间传来传去。......
  • Linux基础02:+文件系统+ 目录操作+ 文件操作+ 存储转换
    内容提要文件系统目录操作文件操作存储转换文件系统Linux本质就是一个文件系统,Linux文件系统是操作系统组织、存取、保存数据的一种手段,整体采用层级式的倒状目录结构。倒树状结构中的目录/:根目录,Linux中的绝对路径就是由这个开始的/bin:主要存放系统的普通指令......
  • GaussDB事务存储组件
    事务存储组件云原生数据库支持透明多写,所有节点对等,每个计算节点都可以读写全部的数据页面,事务在本节点执行,没有分布式事务。每个计算节点都有Localbufferpool,采用Remotememorypool扩展计算节点的内存,在多个计算节点之间共享buffer地址,避免页面在多个计算节点之间传来传去。......
  • Rust程序Vec中存储的一般都是Box动态指针吗?
    Rust程序Vec中存储的一般都是Box动态指针吗?UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU在Rust中,Vec<T>不是专门存储Box<T>或其他动态指针,而是存储类型T的值。具体来说,Vec<T>会按照值的类型T来管理数据,它通常使用堆分配内存来存储数据(对于较大的数据或当数据需要动态增长时......