数据结构线性表初接触1:线性表的顺序存储结构下基本运算的实现

刚刚接触数据结构这学问,通过听课看书后自行练习了用C语言实现线性表的基本运算,其中有许多点值得注意。这里存储各个功能分块的代码,以便自身的理解及以后的复习;

 1 typedef int ElemType;
 2 #define MaxSize 50
 3 typedef struct {
 4     ElemType data[MaxSize];
 5     int length;
 6 }SqList;
 7 void CreateList(SqList *&L,ElemType a[],int n){
 8     int i=0,k=0;
 9     L=(SqList *)malloc(sizeof(ElemType));
10     while(i<n){
11         L->data[i]=a[i];
12         i++;k++;
13     }
14     L->length=k;
15 }
16
17
18 void InitList(SqList *&L){
19     L=(SqList * )malloc(sizeof(SqList));
20     L->length=0;
21 }
22
23 void DestroyList(SqList * &L){
24     free(L);
25 }
26
27 bool ListEmpty(SqList *L){
28     return L->length;
29 }
30
31 int ListLength(SqList *L){
32     return L->length;
33 }
34
35 void DispList(SqList *L){
36     for(int i=0;i<L->length;i++){
37         printf("%d ",L->data[i]);
38     }
39     printf("\n");
40 }
41
42 bool GetElem(SqList *L,int i,Elemtype &e){
43     if(i<1||i>L->length)
44         return false;
45     e=L->data[i-1];
46     return true;
47 }
48
49
50 int LocateElem(SqList *L,Elemtype e){
51     int i=0;
52     while(i<L->length&&L->data[i]!=e)
53         i++;
54     if(i>=L->length)
55         return 0;
56     else
57         return i+1;
58     }
59 }
60
61 bool ListInsert(SqList *&L,int i,Elemtype e){
62     if(i<1||i>L->length)
63         return false;
64         i--;
65         for(int j=L->length;j>i;j--)
66             L->data[j]=L->data[j-1];
67         a[j]=e;
68         L->length++;
69         return true;
70 }
71
72
73 bool ListDelete(SqList *&L,int i,Elemtype e){
74     if(i<1||i>L->length)
75         return false;
76     i--;
77     e=L->data[i];
78         for(int j=i;j<L->length-1;j++)
79             L->data[j]=L->data[j+1];
80         L->length--;
81         return true;
82 }

原文地址:https://www.cnblogs.com/openmymind/p/9370669.html

时间: 2024-10-28 23:39:18

数据结构线性表初接触1:线性表的顺序存储结构下基本运算的实现的相关文章

数据结构泛型之初接触

1. 设计一个泛型类 Collection,它存储 object 对象的集合(在数组中),以及该集合的当前大小,提供......等方法. import java.util.Arrays; /** * @author 小喵钓鱼 * @date 2020-02-13 12:21 * @veision 1.10 */ public class Collection<E> { private Object[] elementData; // setter public void setElementD

【数据结构理论与实践】之线性表

线性表是数据结构中最简单.最常用的一种线性结构,也是学习数据结构全部内容的基础,其掌握的好坏直接影响着后续知识的学习.下面将通过四个模拟项目来学习线性表的顺序和链式存储结构. 一.学生成绩管理 1.项目简介 学生成绩管理师学校教务部门日常工作的重要组成部分,处理信息量很大.本项目是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输出学生数据.学生数据查询.添加学生数据.修改学生数据.删除学生数据. 2.设计思路 本项目的实质是完成对学生成绩信息的建立.查找.插入.修改.删除等功能,可以首先

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

本节我们基于前面实现的数据结构类模板基础,继续完成基于顺序存储结构的线性表的实现,话不多说,继承关系图如下: 14.线性表的本质和操作 14.1.线性表的表现形式 零个多多个数据元素组成的集合 数据元素在位置上是有序排列的 数据元素的个数是有限的 数据元素的类型必须相同 14.2.线性表的抽象定义.性质 线性表是具有相同类型的n(>=)个数据元素的有限序列,(a0, a1, a2... an-1),其中ai是表项,n是表长度.性质: a0为线性表的第一个元素,只有一个后继 an-1为线性表的最后

大话数据结构---顺序存储结构的线性表

线性表的定义:零个或多个数据元素的有限序列. 定义的解读: 首先是由一组数据元素组成,可以基本数据类型,也可以使自定义的类型, 有限的个数,当然可以是0个,也就是空表呗, 还有一个特点就是有序 这么一看线性表抽象出来就和生活中的排队一样,一群小朋友站成一队,每个人都知道自己站在第几个,自己的前面是谁,后面谁,除了排头排位的两个数据,每个数据都有唯一的前驱和后继. 线性表的分类 今天先学习一下顺序存储结构,顺序存储结构指的就是用一段地址连续的存储单元依次存储线性表的数据元素: 这么一看线性表挺像数

数据结构之线性表——顺序存储结构(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

SDUT 3379 数据结构实验之查找七:线性之哈希表

数据结构实验之查找七:线性之哈希表 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突.重复关键字放在hash表中的同一位置. Input 连续输入多组数据,每组输入数据第一行为两个正整数N(N <= 1000)和p(p >= N的最小素数),N是

数据结构与算法——线性表顺序存储结构

今天总结一下数据结构中的线性表中的顺序存储结构,这是一种比较简单的结构. 首先,看一下什么是线性表. 什么是线性表? 线性表是一种简单的数据结构,数据元素之间是一对一的关系,即除了第一个和最后一个元素外其余元素都是首尾相接的.元素的个数称为线性表的长度,长度为零则表示线性表为空. 什么是线性表的循序存储结构? 线性表中的顺序存储结构就是把线性表中的元素按逻辑次序依次存放在一组地址连续的存储空间中,也把这种线性表称为顺序表.根据顺序表的特点,通常是用数组来存储元素的. 下面就看具体的实现(C++)

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

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