自学数据结构——顺序线性表2


 1 /*
2 ============================================================================
3 Name : sqlist.c
4 Author : codecup
5 Version :
6 Copyright : Your copyright notice
7 Description : Hello World in C, Ansi-style
8 ============================================================================
9 */
10
11 #include <stdio.h>
12 #include <stdlib.h>
13
14 #define MAXSIZE 20
15 #define OK 1
16 #define ERROR 0
17 #define TRUE 1
18 #define FALSE 0
19
20 typedef int Status;
21
22 typedef int ElementType;
23 typedef struct {
24 ElementType data[MAXSIZE]; //定义数组用于存储数据
25 int length; //线性表当前的长度
26 } SqList;
27
28 //初始化线性表
29 void initSqList(SqList *L) {
30 L->length = 0;
31 }
32
33 //获取线性表中的元素
34 Status getElem(SqList L, int i, ElementType *e) {
35 if (L.length == 0 || i < 1 || i > L.length) {
36 return ERROR;
37 }
38 *e = L.data[i - 1];
39 return OK;
40 }
41
42 //插入元素
43 Status insert(SqList *L, int i, ElementType e) {
44 int j;
45 if (L->length == MAXSIZE) {
46 return ERROR;
47 }
48 if (i < 1 || i > L->length + 1) {
49 return ERROR;
50 }
51 if (i < L->length) {
52 for (j = L->length - 1; j > i; j--) {
53 L->data[j + 1] = L->data[j];
54 }
55 }
56 L->data[i - 1] = e;
57 L->length++;
58 return OK;
59 }
60
61 //删除元素
62 Status delete(SqList *L, int i, ElementType *e) {
63 int k;
64 if (L->length == 0) {
65 return ERROR;
66 }
67 if (i < 1 || i > L->length) {
68 return ERROR;
69 }
70 *e = L->data[i - 1];
71 if (i < L->length) {
72 for (k = i; k < L->length; ++k) {
73 L->data[k - 1] = L->data[k];
74 }
75 }
76 L->length--;
77 return OK;
78 }
79
80 int main(void) {
81 SqList L;
82 ElementType e;
83 initSqList(&L);
84 insert(&L, 1, 187);
85 getElem(L, 1, &e);
86 printf("%d", e);
87 return EXIT_SUCCESS;
88 }

自学数据结构——顺序线性表2

时间: 2024-10-10 14:25:11

自学数据结构——顺序线性表2的相关文章

自学数据结构——顺序线性表

胡乱写了一些代码 /* ============================================================================ Name : sqlist.c Author :codecup Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ==========================================

数据结构_线性表的顺序表示和链式表示

/********************************************************************************************************************/ 声明: (1)*.h文件是代码声明, *.cpp文件是代码实现; (2)一般头文件的内容有: ①类型声明; ②函数声明; ③枚举; ④常量; ⑤宏 (3)以下说明是为了方便代码文件的管理而设定的一些规则, 以后代码都会按照此规则编写: 1)Pubuse.h 是几

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

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

浅谈数据结构之线性表顺序存储(一)

 首先,数据结构是由某一数据元素集合及该集合中所有数据元素之间的关系组成.具体来说,数据结构应当包含三方面的内容:(1).数据的逻辑结构:(2).数据的存储结构:(3).对数据所施加的操作.而数据的存储结构形式有两种:顺序存储与链式存储.在这里,先谈一谈线性表的顺序存储. 线性表:零个或多个数据元素的有限序列.第一,它是一个序列,也就是说,元素之间是有顺序的:第二,它是有限的,即元素个数是有限的.而线性表的顺序存储结构,说白了,就是在内存中找块地,通过占位的形式把一定的内存空间给占了,然后把相同

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

数据结构之线性表——顺序存储结构(php代码实现)

<?php /**  *  * 线性表:即零个或多个数据元素的有限序列.  * 线性表的数据结构:即数据元素依此存储在一段地址连续的存储单元内.在高级语言中就表现为数组.  *  * 1. DestroyList: 销毁顺序线性表  * 2. ClearList: 将线性表重置为空  * 3. ListEmpty: 判断线性表是否为空  * 4. ListLength: 返回线性表的长度  * 5. GetElem: 返回线性表中第$index个数据元素  * 6. LocateElem: 返回

数据结构之线性表之顺序存储结构(3)

1 前言 经过前两张的理论基础,我相信大家都能简单的明白了数据结构和算法一些常用的概念了,从今天开始我们开始学习数据结构中线性表,一起叩响数据结构的大门. 2 详述 线性表(List):零个或者多个数据元素的有限序列. 如果用数学语言来进行定义: (声明:由于下标不是很好弄出来,所以只能表示下面这种方式了,请见谅!) 若线性表记作(a1,...ai-1,ai,ai+1,...,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素.当i

Java数据结构之线性表

从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的几张,我们将会分别讲解这几种数据结构,主要也是通过Java代码的方式来讲解相应的数据结构. 今天要讲解的是:Java线性结构 Java数据结构之线性结构 说到线性结构的话,我们可以根据其实现方式分为三类: 1)顺序结构的线性表 2)链式结构的线性表 3)栈和队列的线性表 1.顺序结构的线性表    

数据结构之线性表(顺序存储结构)

小学生放学都是要按顺序排队的,一个接一个,每个小学生的前后位置是固定的,这样便于迅速清点. 其实这就是一个线性表,从这件事里我们就可以找到很多关于线性表的特性,如 1.线性表是一个序列,它是有顺序的(排队) 2.第一个元素无前驱,最后一个无后继,其他每个元素都有一个前驱和后继(一个接一个) 3.元素是有限的(小学生的个数是有限的) 4.数据类型都相同(都是小学生在排队) 说明白线性表示什么,下面我们直接看线性表的实现 线性表的实现分顺序存储结构和链式存储结构 顺序存储结构: #define LI