#define maxSize 100 //这里定义一个整型常量maxSize,值为100
1.顺序表的结构体定义
如图2-9所示,一个顺序表包括一个存储表中元素的数组data[]和一个指示元素个数的变量length。
说明:在考试中用得最多的顺序表的定义并不是这里讲到的结构型定义,而是如下形式:
int A[maxSize];
int n;
上边这两句就定义了一个长度为n,表内元素为整数的顺序表。显然在答卷的时候这种定义方法要比定义结构体简洁一些。
图2-9 顺序表
2.单链表结点定义
图2-10 所示为单链表结点结构图。
3.双链表结点定义(www.daowen.com)
说明:
结点是内存中一片由用户分配的存储空间,只有一个地址来表示它的存在,没有显式的名称,因此我们会在分配链表结点空间的时候,同时定义一个指针,来存储这片空间的地址(这个过程通俗地讲叫指针指向结点),并且常用这个指针的名称来作为结点的名称。
例如下边这句代码:
LNode *A=(LNode*)malloc(sizeof(LNode));
用户分配了一片LNode型空间,也就是构造了一个LNode型的结点,这时候定义一个名字为A的指针来指向这个结点,同时我们把A也当作这个结点的名字。注意,这里A命名了两个东西:一个是结点,另一个是指向这个结点的指针。
本书中如果出现此类描述:“p指向q”,此时p指代指针,因为p既是指针名又是结点名,但是结点不能指向结点,因此p指代指针。又如“用函数free()释放p的空间”,此时p指代结点,因为p既是指针名又是结点名,但指针变量自身所需的存储空间是系统分配的,不需要用户调用函数free()释放,只有用户分配的存储空间才需要用户自己来释放,所以p指代结点。
图2-11所示为双链表结点结构图。
图2-10 单链表结点结构图
图2-11 双链表结点结构图
说明:以上就是本章所需的所有数据结构的C语言描述,希望考生牢记并且可以默写,这是完成本章程序设计题目所必须掌握的最基本的知识。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。