如何编写指针链表(十)的原创方法?

2026-05-22 18:390阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1876个文字,预计阅读时间需要8分钟。

前言:最近我又来更新这个系列了,感觉对于我们来说,这个存在非同寻常的重要性。指向之处,首先是初学者的噩梦,它的难度源于其灵活性。本文,我想探讨一下指向的实际应用。

前言

最近我又来更新这个系列了,其实感觉指针对于我们还是非常重要的存在。指针之所以是初学者们的“噩梦”,它的难度源于它的灵活性。
这篇文章,我想要来写一下指针的实际运用,如果指针只是一些考试的考题,那就没有意义了。最重要的,指针在C语言,乃至C++,都是不可或缺的一部分。

链表的简单回顾

链表是一种数据结构。

对于一个链表来说,每个结点有两个域,即数据域和指针域,数据域是用来存放这个链表的数字,指针域用来存放下一个结点的地址。特别的,最后一个结点的指针域设为NULL。
这样,就不需要让整个链表顺序存储了。

对于数据的插入和删除操作,链表只需要新建结点即可:

插入和删除的时间复杂度是O(1),不需要移动元素。而对于普通的线性表,需要移动数据,因此时间复杂度为O(n)。

结构体声明

对于链表的结构体,我们可以这样写:

typedef struct List{ int data; List *next; List(int x){ this->data=x; next=NULL; } }; List *lst;

data是数据域,next是指针域。

其中,List(x)是一个构造函数,这样在使用new进行结点分配的时候可以简便书写。分配的时候就需要这样写:

l=new List(x);

这个构造函数做了两件事:一个是把data进行赋值,一个是把next设为NULL。

阅读全文
标签:写法前言

本文共计1876个文字,预计阅读时间需要8分钟。

前言:最近我又来更新这个系列了,感觉对于我们来说,这个存在非同寻常的重要性。指向之处,首先是初学者的噩梦,它的难度源于其灵活性。本文,我想探讨一下指向的实际应用。

前言

最近我又来更新这个系列了,其实感觉指针对于我们还是非常重要的存在。指针之所以是初学者们的“噩梦”,它的难度源于它的灵活性。
这篇文章,我想要来写一下指针的实际运用,如果指针只是一些考试的考题,那就没有意义了。最重要的,指针在C语言,乃至C++,都是不可或缺的一部分。

链表的简单回顾

链表是一种数据结构。

对于一个链表来说,每个结点有两个域,即数据域和指针域,数据域是用来存放这个链表的数字,指针域用来存放下一个结点的地址。特别的,最后一个结点的指针域设为NULL。
这样,就不需要让整个链表顺序存储了。

对于数据的插入和删除操作,链表只需要新建结点即可:

插入和删除的时间复杂度是O(1),不需要移动元素。而对于普通的线性表,需要移动数据,因此时间复杂度为O(n)。

结构体声明

对于链表的结构体,我们可以这样写:

typedef struct List{ int data; List *next; List(int x){ this->data=x; next=NULL; } }; List *lst;

data是数据域,next是指针域。

其中,List(x)是一个构造函数,这样在使用new进行结点分配的时候可以简便书写。分配的时候就需要这样写:

l=new List(x);

这个构造函数做了两件事:一个是把data进行赋值,一个是把next设为NULL。

阅读全文
标签:写法前言