数据结构中线性表的顺序式表示动态分配存储结构

顺序线性表存储结构,很容易实现随机存取线性表第i个元素的操作,但实现删除或者插入操作时需要移动大量的数据元素。所以,顺序表适应于稳定的线性表,如职工工资表和学生学籍表。

 1  #define LIST_INIT_SIZE 10 //线性表存储空间的的初始分配量
 2  #define LIST_INCREMENT 2//线性表存储空间分配增量
 3
 4  typedef int ElemType;//定义抽象数据类型ElemType为整形变量
 5
 6  struct Sqlist
 7 {
 8        ElemType *elem;//存储空间基址
 9        int length;//线性表当前长度
10        int listsize; //当前分配存储容量
11 };

对此结构体的认识:第一,在外部用typedef 定义了ElemType的变量类型,这样增加了代码的灵活性。如果以后要修改存储变量的类型只需修改ElemType的类型就可以了;

第二,在这里使用的是ElemType的指针变量,相当于使用数组时的 ElemType elem[LIST_INIT_SIZE],不过这里使用指针更加灵活,这在顺序表的基本操作函数中可以看出来。

时间: 2024-08-14 10:31:19

数据结构中线性表的顺序式表示动态分配存储结构的相关文章

数据结构中线性表的顺序式表示的基本操作函数

线性表的基本操作共有十二个.我们通过对线性表基本操作的有机组合,可以处理较为复杂的线性表. 一.初始化顺序线性表——构造一个空的顺序线性表 1 void InitList(SqList &L) 2 { 3 L.elem = (ElemType*)malloc(LIST_INIT_SIZE *sizeof(ELemType));//malloc函数来分配存储空间 4 if(!L.elem)//分配存储失败 5 { 6 exit(OVERFLOW); 7 } 8 L.length = 0;//空表的

数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

数据结构中线性表的基本操作-合并两个线性表

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

数据结构——线性表(顺序实现)

好好学习基础知识,出人头地就靠它了,内外兼修.(好吧,我现在内外都不行)写这篇文章的目的就是为了,巩固刚学完的线性表,个人能力有限,若有不当之处,望指出. 线性表 好了,扯完了,说正事: 1.定义 线性表是一种及其常用的并且最简单的一种数据结构.简单来说,线性表就是集合里的元素的有限排列.(在这里我把集合定义为具有相同属性的元素,会有些狭义) 在线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部.比

数据结构-线性表_顺序表

进入大学一年了,今日终于有勇气写写随笔并展示出来了. 如有不足之处,请大家指正. 今日我想写的就是我对数据结构-线性表_顺序表的理解. 不BB了,进入正题!!!!! 数据结构中的逻辑结构分为线性结构和非线性结构,而线性表就属于线性结构. 线性结构是 n 个数据元素的有序(次序)集合,它有下列几个特征: 集合中必存在唯一的一个 "第一个元素": 集合中必存在唯一的一个 "最后的元素": 除最后元素之外,其它数据元素均有唯一的 "后继": 除第一元素

数据结构------线性表的链式表示与实现

不多说直接上代码: #include"stdafx.h" #include <stdio.h> #include <stdlib.h> /****************************************************************************** /* 数据类型和常量定义 /***********************************************************************

C# 数据结构 线性表(顺序表 链表 IList 数组)

线性表 线性表是最简单.最基本.最常用的数据结构.数据元素 1 对 1的关系,这种关系是位置关系. 特点 (1)第一个元素和最后一个元素前后是没有数据元素,线性表中剩下的元素是近邻的,前后都有元素. (2)线性表中的元素是有限的(List),线性表中的数据类型一致. (3)线性表表示方法 L={a1,a2,a3,a4…….an},L=(D,R) (4)每一个元素都有前驱和后继,第一个元素只有后继,最后一个元素只有前驱. 实例 例如:1-100的整数是一个线性表 {“zhangsan”, “lis

数据结构-线性表的链式结构

线性表的链式结构,与之前说过的线性表的顺序结构差不多,区别在于存储结构和方式的不一样. 在链式中,来一个数据就去寻找一个空间存储一个结点有多少数据占多大的地方,是动态的存储方式.另外顺序表如果存储1MB就只占1MB存储空间,但是链式表不一样,它会有额外的空间去存储对应结点的指针. 这样一分析结构就出来了,链式结构为两部分:1.结点域.2.指针域.实现方法用动态存储. 1 #include "stdio.h" 2 #include "stdlib.h" 3 4 typ

《数据结构 - 线性表》链式存储 (单链表)

一:线性表定义 -<数据结构 - 线性表>顺序存储结构 二:为什么要 链式存储 线性表? - 因为在使用 顺序结构 存储方式存储的时候,每次进行 插入/删除 都需要大量移动元素的位置. - 所以设计出一种 存储空间不连续 的存储结构. - 这个线性表可能是这样的(存储位置不固定) -  三:链式存储 定义 -  因为链式存储,不是连续空间,所以需要两个信息 - 一个用于 存储数据元素,也叫做 数据域 - 一个用于 指向 下一个位置 的 指示信息,叫做指针域. - 指针域中存储的信息叫指针/链