当前位置: 首页 > news >正文

C++关于链表基础知识

单链表

// 结点的定义

template <class T>

struct Node 

{

        T data ;

        Node <T> *next;   //指向下一个node 的类型与本node相同

}

// 最后一个node指针指向Null

 生成结点:  Node <T> * p =  new Node < T>;

为结点赋值:       p-> data = 'a';

                        p- > next = (其他结点的地址);  p -> next = NULL ; (尾结点)

                        delete p; //释放结点

// 单链表的类实现

template <class T> 

class LinkList

{

public :    //此处是函数定义

        LinkList();   

        ListList(T a[ ] , int n);

        int Lenght(); 

        T Get(int);  //查找

        int Loate(T); //定位

        void insert(T,int);  //插入

        T delete (int) ;  //删除

        ~LinkList();  

private:

        Node <T> * first;      

}

构造函数的实现一个空链表:

template <class T>
LinkList <T> :: LinkList()
{first = new Node <T>;    first->next = NULL;           
}

头插法

初始化头节点(头节点指的是first,首结点代表链表第一个结点)

template <class T>
LinkList <T> :: LinkList (T a[ ] ,int n)
{//初始化头节点first = new Node<T>;first ->next =NULL;for (int i =0 ; i<n ;i++){//生成新的结点Node <T> *s = new Node <T>;s ->data =a [i]; //链接再头节点和首结点之间s->next = first ->next;first ->next = s ;}
}

核心代码:

        s->next = first ->next;
        first ->next = s ;

因为对于first ->next的初始化指向是NULL;此处赋值给s->next则表示了s->next指向了NULL

然后将地址s赋值给了first ->next(头节点的地址域)

尾插法

template <class T>
LinkList <T> :: LinkList (T a[ ] ,int n)
{//初始化头节点Node<T> *first = new Node<T>;Node<T> *r = first;    //尾结点首先指向firstfor (int i =0 ; i<n ;i++){//生成新的结点Node <T> *s = new Node <T>;s ->data =a [i];s ->next =NULL;   //由于是尾插,直接指向NULL //链接在尾结点后面:r->next = s;//尾结点后移,由于此时的新的结点s是尾结点r= s;}//这里也可以加一句r->next = NULL;
}

                        


http://www.mrgr.cn/news/43821.html

相关文章:

  • 性能测试学习2:常见的性能测试策略(基准测试/负载测试/稳定性测试/压力测试/并发测试)
  • RAG早已经过时,RAG-Fusion正当时
  • vulnhub靶场之hackablell
  • 类成员函数定义和作用域解析符
  • 英文论文安全的免费查重网站
  • ElasticSearch备考 -- Search across cluster
  • 最具有世界影响力的人颜廷利:全球著名哲学家思想家起名大师
  • 双11买什么东西比较好?买什么?这份双十一好物清单请查收
  • MOELoRA —— 多任务医学应用中的参数高效微调方法
  • 【面试必备】React 19更新一些特性
  • php常用的注释符号
  • 钰泰-ETA1467降压DC-DC芯片
  • ComfyUI【基础篇】:ComfyUI插件详解,附ComfyUI插件的下载方式示例
  • 内网靶场 | 渗透攻击红队内网域渗透靶场-1(Metasploit)零基础入门到精通,收藏这一篇就够了
  • 基于SpringBoot+Vue+MySQL的校园二手物品交易系统
  • 重建大师框架构建结束之后新建产品需要保存框架吗?
  • 布局性能优化
  • 问:TCP长连接vs短连接有哪些差异?
  • 《数据结构》--队列【各种实现,算法推荐】
  • Vue (快速上手)