《数据结构(C语言版)》学习——day2,线性表

1. 线性表定义

线性表是一种内部数据类型相同、数据个数有限的数据结构。线性表的长度指的是线性表中元素的个数,如果线性表的长度为0时,则称其为空表。在非空表中的每个数据元素都有一个确定的位置,其中i为数据元素ai的位序。

2. 线性表的顺序表示和实现

线性表的顺序表示指的是用一组地址连续的存储单元依次存储连续线性表的数据元素。

通常情况下,采用数组来描述数据结构中的顺序存储结构。但由于线性表的长度可变,且所需最大存储空间随问题不同而不同,因此在C语言中,可用动态分配的一维数组来进行描述。

//--------------------线性表的动态分配顺序存储结构--------------------------

# define LIST_INIT_SIZE 100  // 线性表存储空间的初始分配量

# define LISTINCREMENT 10 // 线性表存储空间的分配增量

typedef struct{

ElemType *elem;  // 存储空间基地址

int             length;  // 当前长度

int             listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)

}SqList;

// ------------------------------初始化操作---------------------------------------

Status InitList_sq(SqList &L){

// 构造一个空的线性表L

L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));

if(!L.elem) exit(OVERFLOW);  // 存储分配失败

L.length = 0;                              // 空表长度为0

L.listsize = LIST_INIT_SIZE;   // 初始存储容量

return OK;

}

原文地址:http://blog.51cto.com/10741210/2106679

时间: 2024-08-08 16:45:45

《数据结构(C语言版)》学习——day2,线性表的相关文章

深入浅出数据结构C语言版(4)——表与链表

在我们谈论本文具体内容之前,我们首先要说明一些事情.在现实生活中我们所说的"表"往往是二维的,比如课程表,就有行和列,成绩表也是有行和列.但是在数据结构,或者说我们本文讨论的范围内,我们所说的"表"是一维的,即所有"元素"都是前后排列的.就我个人而言,这样的"表"用"队列"来形容比较恰当.但是,数据结构中"队列"这个名词是被一种特殊的"表"给占用了的,所以我们没法再用

数据结构(C++)学习笔记——线性表

(1)顺序表: 题目1: 已知长度为n的顺序表, 写一时间复杂度为O(n), 空间复杂度为O(1)的算法,实现删除顺序表中所有值为item的数据元素的操作 类和类函数的声明文件(SqList.h): 类函数的实现文件(SqList.cpp):

数据结构学习笔记——线性表的应用

数据结构学习笔记——线性表的应用 线性表的应用 线性表的自然连接 计算任意两个表的简单自然连接过程讨论线性表的应用.假设有两个表A和B,分别是m1行.n1列和m2行.n2列,它们简单自然连接结果C=A*B(i==j),其中i表示表A中列号,j表示表B中的列号,C为A和B的笛卡儿积中满足指定连接条件的所有记录组,该连接条件为表A的第i列与表B的第j列相等. 如:         1 2 3                3 5 A  =  2 3 3         B =  1 6       

《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

先附上文档归类目录: 课本源码合辑  链接??? <数据结构>课本源码合辑 习题集全解析  链接??? <数据结构题集>习题解析合辑 博主有话说: 01.自学编程,难免思路阻塞,所以从今天起,我(StrayedKing)决定在本博客陆续更新严蔚敏,吴伟民版<数据结构-C语言版>各章节的课本源码和配套习题集答案解析,目的是为了整理数据结构中的知识点,并与网友交流意见,集思广益,共同进步.        ★注★ 左侧随笔分类下用两个栏目:<课本源码>.<习

数据结构c语言版串的操作

#include<stdio.h> #include<malloc.h> #include<string.h> //定义字符串的结构体 typedef struct { char *str;//字符串 int maxLength;//最大可以存放字符的长度 int length;//目前的字符长度 }DString; //1.初始化操作 //初始化操作用来建立和存储串的动态数组空间以及给相关的数据域赋值 void Initiate(DString *s,int max,

深入浅出数据结构C语言版(9)——多重表(广义表)

在深入浅出数据结构系列前面的文章中,我们一直在讨论的表其实是"线性表",其形式如下: 由a1,a2,a3,--a(n-1)个元素组成的序列,其中每一个元素ai(0<i<n)都是一个"原子","原子"的意思就是说元素本身是一个个体,所有元素都是相同的结构. 但是在我们常见的某些应用,比如Excel的表格中,我们发现表并不一定是线性表,Excel中的表就明显是二维的结构 那么在数据结构中,我们会使用这种广义上的表吗?答案是会,我们也会.或

数据结构学习笔记——线性表

第2章  线性表 2.1  线性表的类型定义  线性结构的特点是:在数据元素的非空有限集中,(1)存在唯一的一个被称做“第一个”的数据元素:(2)存在唯一的一个被称做“最后一个”的数据元素:(3)除第一个之外,集合中的每个数据元素只有一个前驱:(4)除最后一个外,集合中每个数据元素均只有一个后继. 线性表的类型定义 线性表(linear_list)是最常用的且最简单的一种数据结构.一个线性表是n个数据元素的有限序列.在稍复杂的线性表中,一个数据元素可以由若干个数据项(item)组成.在这种情况下

数据结构学习笔记-----------------线性表

线性结构的特点:在数据的非空有限集中 一.存在唯一一个被称为"第一个"的数据元素 二.存在唯一一个被称为"最后一个"的数据元素 三.除第一个之外,集合中每个数据元素均只有一个前驱 四.除最后一个之外,集合中每个数据元素均只有一个后继 一个线性表是n个数据元素的有限序列 序偶关系:两个固定次序的客体组成一个序偶,它常表达连个客体之间的关系. 非递减有序排列:从小到大,允许中间有相等的情况

数据结构回顾之顺序存储结构中的线性表(栈与队列顺序线性表实现)

说到数据结构呢,对于一个Coder来说还是蛮重要的啦,每次看数据结构的东西都有新的收获,这两天在回顾数据结构的知识.当然啦,虽然数据结构有些是理论的东西,如果好好的理解数据结构的东西还是少不了的代码的支撑的.数据结构简单的来说吧,可以分为两大类,一个是数据的"物理存储结构",另一种是数据的"逻辑存储结构".数据的"物理存储结构"又可分为顺序的和链式的(下面将会结合着代码打印内存地址的形式来观察物理存储结构). 逻辑存储结构又可分为集合,线性, 树