首页 > 其他 > 详细

几种常见的线性表存储结构

时间:2015-06-27 22:41:42      阅读:436      评论:0      收藏:0      [点我收藏+]

1.线性表的的动态分配顺序存储结构

1 #define LIST_INIT_SIZE 100    //线性表存储空间的初始分配量
2 #define LISTINCREMENT 100    //线性表存储空间的分配增量
3 typedef struct {
4     ElemType *elem;        //存储空间基址
5     int length;            //当前长度
6     int size;            //当前分配的存储容量
7 }SqList;                //动态分配 + 顺序存储结构

 

2.线性表的单链表存储结构

1 typedef struct LNode{    //结点类型
2     ElemType data;        //数据域
3     struct LNode *next;    //指针域
4 }*Link;
5 typedef struct {        //链表类型
6     Link head, tail;    //分别指向线性链表的头结点和最后一个结点
7     int len;            //指示线性链表中数据元素的个数
8 }LinkList;

头指针:指示链表中第一个结点的存储位置(LNode *类型)
头结点:单链表的第一个结点前附设一个结点(数据域可存长度 LNode类型)
首元结点:第一个结点

 

3.线性表的静态单链表存储结构

1 #define MAXSIZE 1000    //链表的最大长度
2 typedef struct{
3     ElemType data;
4     int cur;
5 }Component, SLinkList[MAXSIZE];

需要用户自己实现malloc和free函数,将所有未使用过的和被删除的结点用游标链成一个备用链表

 

4.线性表的双向链表存储结构

1 typedef struct DulNode{
2     ElemType data;
3     struct DulNode *prior;
4     struct DulNode *next;
5 }*Dulink;
6 typedef struct {        //链表类型
7     Link head, tail;    //分别指向线性链表的头结点和最后一个结点
8     int len;            //指示线性链表中数据元素的个数
9 }DulinkList;

2015-06-27 21:21:29

几种常见的线性表存储结构

原文:http://www.cnblogs.com/Sunshine--Lin/p/4604704.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!