理论教育 线性表结构体定义-2019数据结构高分笔记

线性表结构体定义-2019数据结构高分笔记

时间:2023-11-03 理论教育 版权反馈
【摘要】:#define maxSize 100 //这里定义一个整型常量maxSize,值为1001.顺序表的结构体定义如图2-9所示,一个顺序表包括一个存储表中元素的数组data[]和一个指示元素个数的变量length。显然在答卷的时候这种定义方法要比定义结构体简洁一些。图2-11所示为双链表结点结构图。图2-10 单链表结点结构图图2-11 双链表结点结构图说明:以上就是本章所需的所有数据结构的C语言描述,希望考生牢记并且可以默写,这是完成本章程序设计题目所必须掌握的最基本的知识。

线性表结构体定义-2019数据结构高分笔记

#define maxSize 100 //这里定义一个整型常量maxSize,值为100

1.顺序表的结构体定义

978-7-111-58746-0-Chapter02-12.jpg

978-7-111-58746-0-Chapter02-13.jpg

如图2-9所示,一个顺序表包括一个存储表中元素的数组data[]和一个指示元素个数的变量length。

说明:在考试中用得最多的顺序表的定义并不是这里讲到的结构型定义,而是如下形式:

int A[maxSize];

int n;

上边这两句就定义了一个长度为n,表内元素为整数的顺序表。显然在答卷的时候这种定义方法要比定义结构体简洁一些。

978-7-111-58746-0-Chapter02-14.jpg

图2-9 顺序表

2.单链表结点定义

978-7-111-58746-0-Chapter02-15.jpg

图2-10 所示为单链表结点结构图

3.双链表结点定义(www.daowen.com)

978-7-111-58746-0-Chapter02-16.jpg

说明:

结点是内存中一片由用户分配的存储空间,只有一个地址来表示它的存在,没有显式的名称,因此我们会在分配链表结点空间的时候,同时定义一个指针,来存储这片空间的地址(这个过程通俗地讲叫指针指向结点),并且常用这个指针的名称来作为结点的名称。

例如下边这句代码:

LNode *A=(LNode*)malloc(sizeof(LNode));

用户分配了一片LNode型空间,也就是构造了一个LNode型的结点,这时候定义一个名字为A的指针来指向这个结点,同时我们把A也当作这个结点的名字。注意,这里A命名了两个东西:一个是结点,另一个是指向这个结点的指针。

本书中如果出现此类描述:“p指向q”,此时p指代指针,因为p既是指针名又是结点名,但是结点不能指向结点,因此p指代指针。又如“用函数free()释放p的空间”,此时p指代结点,因为p既是指针名又是结点名,但指针变量自身所需的存储空间是系统分配的,不需要用户调用函数free()释放,只有用户分配的存储空间才需要用户自己来释放,所以p指代结点。

图2-11所示为双链表结点结构图。

978-7-111-58746-0-Chapter02-17.jpg

图2-10 单链表结点结构图

978-7-111-58746-0-Chapter02-18.jpg

图2-11 双链表结点结构图

说明:以上就是本章所需的所有数据结构的C语言描述,希望考生牢记并且可以默写,这是完成本章程序设计题目所必须掌握的最基本的知识。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈