首页 > 其他分享 >基础数据结构 -链表

基础数据结构 -链表

时间:2022-11-18 15:24:25浏览次数:47  
标签:linkListNode head int 基础 next 链表 数据结构 节点

链表描述:

内存中内部的存储方式,通常情况下可以认为是多个节点存储一串的的结构

  链表存储结构

            数据域 Data field

            指针域 pointer field   

强调: 指针域 一般指向下一个节点的地址 , 或者也可以认为是下一个节点的的引用(引用可以指向任意的对象)

指针域实现→ c 内存中的地址 ,地址唯一标记节点的位置

                    存的是数组下标 →  存储的是相对的地址的概念 

                    下一个节点,也有存储引用

完结: 只要相关结构中增加了一项指针域,结构就可以串成链表的结构

链表特点:

 至少必须包含两个部分: 数据和指针域

 链表的每个节点,通过指针域的值,形成了一个线性结构

 ps 由于是通过指针区串联成的一串,所以只允许从前向后依次访问节点. 不允许用下标.

  (访问速度)也就成了o(n ) 

 —也正是链表是一种松散的结构,由于指针域存储的是下一个引用,也就是说我只要改变了指针的指向. 就可以完成动态的插入或修改(我可以吧插入地址,修改成修改前的下一个内存地址)

 插入和修改删除都是o(1)的

 并不适合快速查找.

链表的实现

指针版

  struct linkListNode{
       linkListNode(int data):data(data),next(NULL){};
       int data;
       linkListNode *next;
    };
    
    void  impleLinkList_bystruct(){
       void  Data_struct::impleLinkList_bystruct(){
       linkListNode *head=NULL;
       head=new linkListNode(1);
       head->next =new linkListNode(2);
       head->next->next = linkListNode(3);
       head->next->next->next =new  linkListNode(4);

       LinkListNode  *p=head;
       while (p!=NULL) {
           cout << p->next << e
        }
       cout << endl;
     }

 

 

数组下标实现链表

//add 函数的作用地址index 节点后 添加一个地址为p的节点,并在让p节点中存储val

int next[10];
    int data[10];
    void  LinkListadd(int ind ,int p,int val){
       next[ind]=p;
       data[p]=val;
       return ;
   }
    
    void  impleLinkList_byarr(){
         int  head =3 ;
          data[3]=0;
        //头节点是3
        //3节点后添加5节点,存的是1
        LinkListadd(3,5,1);
        //五节点添加2节点,存的是2
        LinkListadd(5,2,2);
        //2节点添加的是7节点 ,存的是3
        LinkListadd(2,7,3);
        // 第二个是下一个节点 ,最后一个是值
        LinkListadd(7,9,100);
        //构造了链表
        
        int p =head;
        while(p=!0){
            cout << "->" <<data[p] << endl;
            p =next[p];
        }
        return 0;
     }

 

标签:linkListNode,head,int,基础,next,链表,数据结构,节点
From: https://www.cnblogs.com/yijieyufu/p/16903346.html

相关文章

  • 语言基础小记
    1.C#支持哪几个预定义的值类型?值类型:简单类型(整型、布尔型、字符型、浮点型、小数型)       结构类型       枚举类型(byte、bool、int、f......
  • 114. 二叉树展开为链表 -----
    给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链......
  • BSN-DDC基础网络DDC SDK详细设计五:官方合约BSN-DDC-1155
    2022年1月25日,区块链服务网络发展联盟(简称“BSN联盟”)推出了“BSN-DDC基础网络”(简称DDC网络)。DDC网络的推出,为NFT技术在我国的落地提供基础设施能力支撑,并为其合规发展保驾......
  • 计算机基础随笔——系统篇
    操作系统进程与线程任务的三种状态 1.操作系统前言:操作系统最核心的概念就是进程进程指的就是一个程序的运行过程,具体来说指的是操作系......
  • Vue2基础知识点
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"conten......
  • Python基础之运算符
    一、算数运算符混合运算优先级顺序:()⾼于**⾼于*///%⾼于+-二、赋值运算符单个变量赋值num=1print(num)多个变量赋值num1,float1,str1=10,0.5,'hellowo......
  • [Swift] SwiftUI布局的一些写法基础(用Swift构造UI布局)
    这个文档是在你 完全熟悉Objective-C上用代码构造UI的前提下写的官方教程:https://developer.apple.com/tutorials/swiftui/creating-and-combining-views*使用的一些......
  • Pyomo基础学习笔记:建模组成要素的编写方法
    1、Pyomo简介pyomo文档【数学建模】优化模型建模语言Pyomo入门教程-知乎(zhihu.com)Pyomo是基于Python的开源软件包,主要功能是建立数学规划模型,包括线性规划,二......
  • JSON系列1:JSON基础知识
    点击查看代码myObj={"name":"BillGates","age":62,"cars":[ {"name":"Porsche","models":["911","Taycan"]}, {"name":"BMW",&q......
  • 十六、二叉树(二叉链表)遍历算法
    一、二叉树的遍历遍历二叉树(Traversingbinarytree)是指按某条搜索路径巡访树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。先序遍历(根左右)中序遍历......