码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-27 22:42:58      阅读:135      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!