欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

class11 zhc 链表1

时间:2024-06-16 10:06 作者:admin 点击:
数组: 长度一旦创建,不能修改 在内存中是物理连续存放的(在内存中挨着存) 访问元素,可以通过下标(便捷) 增加/删除元素,涉及到更改数组的长度,也就是重建数组/平移数据

数组:

   长度一旦创建,不能修改

   在内存中是物理连续存放的(在内存中挨着存)

   访问元素,可以通过下标(便捷)

   增加/删除元素,涉及到更改数组的长度,也就是重建数组/平移数据(繁琐)

链表:

   长度随着元素数量动态变化

   在内存中非物理连续,通过指针连接

   访问元素,通过链表的头指针依次查找(繁琐)

   增加/删除元素,直接修改即可(便捷)

---—-------------

指针指向结构体

node a;

node *head=&a;

cout<<a.name;

cout<<(*head).name;

cout<<head->name;

-----------------

1、静态链表

创建链表节点

struct node{

   //数据域

   string name;

   int age;

   //指针域

   node *nex;

};

创建三个节点并连接

node a,b,c;

a.name="hhh";

a.age=15;

b.name="qqq";

b.age=16;

c.name="bbb";

c.age=14;

a.nex=&b;

b.nex=&c;

c.nex=NULL;

node *head=&a;

遍历链表

while(head!=NULL){

   cout<<head->name;

   head=head->nex;

}//错误示范,head指向的数据不能更改,防止数据丢失

node *p=head;

while(p!=NULL){

   cout<<p->name;

   p=p->nex;

}


完成静态链表的增删改查

增:输入一个数字n,输入一个节点数据,将这个新数据插入到第n个位置上

完成增加操作后,遍历链表

删:输入一个数字n,删除第n个数据

完成删除操作后,遍历链表

改:输入一个数字n,输入一个节点数据,将第n个节点的数据更新

完成修改操作后,遍历链表

查:输入一个数字n,返回第n个节点的数据

完成查询后输出这个数据的具体信息



2、了解链表的节点结构

链表的每个数据结构称为链表的节点,每个节点包含数据域和指针域

单向链表,指针域指向下一个节点的地址,最后一个数据指向NULL,头指针指向第一个数据

双向链表,指针域分别上一个节点和下一个节点的地址,两个头,两个尾

循环链表,尾节点的指针指向头节点


3、动态创建链表

4、完成动态链表的增删改查(单向、双向)

(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%