数据类型,线性表概念

简介: 数据类型,线性表概念

数据类型

在计算机中,因为内存空间是有限的,所以不同的类型的数据分配的内存空间大小不同

数据类型是指一组性质相同的值的集合及定义在此集合上的一些操作的总称

在C语言中,按照值的不同,数据类型分为两类

原子型:不可以再分解的基本类型,包括整型,实型等

结构性:有若干个类型组合而成,是可以再分的。例如:整型数组是有若干个整型数据组成的

抽象数据类型:是对已有数据类型进行抽象,指的是一个数据模型及定义在该模型上的一组操作

线性表:零个或多个数据元素的有限序列,包括顺序表和链式表

线性表特点:

1.它是一个序列,数据元素之间是有序的,数据元素之间是一对一的关系

2.数据元素个数是有限的(0个有限序列的线性表成为空表)

包含的操作:

创建或初始化、查找、插入、删除、清空(增删改查)

ADT线性表(sequence list)

data(数据)1.线性表数据元素是一个集合{a_1, a_2, a_3, ……a_n),数据元素的数据类型为DataType(int, char, 自定义)

2.除了第一个元素a_1外,每个元素有且仅有一个直接的前驱元素

3.除了最后一个a_n外,每个元素有且仅有一个直接的后继元素

4.每个数据元素之间的关系是一对一的关系

Operaotion:创建或初始化,

Initialized_List(*List); //初始化线性表:创建一个空的线性表List

InsertElement(*List, index, elem); //在线性表LIst的Index下标处插入元素elem

DeleteElement(*List, index, *elem);//删除线性表List中第index个元素,并返回删除元素的指针。

IsEmpty(*List);

ClearList(*List);

GetEmement(*List, index, *elem);

线性表的顺序存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素

3个属性:存储空间的起始位置,数组datas

     最大存储容量

     线性表当前长度,当前元素个数

1.我们需要定义线性表的最大存储空间#define MAX_SIZE 255

2.线性表里需要有统一类型的元素集合typedef int Element;
Typedef struct {

Int id;

Char *name;

}ElementType;

3.定义线性表结构

Typedef struct{

ElementType datas[MAX_SIZE]

Int length;

}SeqList;

地址的计算方法:第i个元素的地址 = 首地址 + 第i个元素的下标i-1

Position:位置,从1开始

index,下标,从0开始

线性表的顺序存储结构的优点:

1.无需为表示表中元素之间的逻辑关系而增加额外的存储空间

2.可以快速存取表中任意位置的元素

缺点:

1.删除和插入操作需要移动大量的元素

2.当线性表长度变化较大时,难以确定存储空间的容量

3.造成空间的“碎片”

链式存储:

链表:优点:1.不用定义规定长度

2.存储的个数不收限制

3.插入和删除元素时,不用移动其他元素


头指针:在链表中第一个结点的存储位置

头结点:在单链表的第一个结点前附近的一个结点(有了头结点,第一个结点前插入和删除第一个结点时,操作与其他结点的操作就统一了

单链表:链表的每一个结点中只包含一个指针域

获取第i个结点的数据

typedef struct Monster{

int id;

Char *name;

Struct Monster *next; //指向下个结点的指针

}Monster;

Void test()

{

Monster monster1 = "

Test:返回一个局部变量的值

相关文章
|
8月前
|
存储 搜索推荐
【数据结构】线性表的抽象数据类型
【数据结构】线性表的抽象数据类型
92 1
|
8月前
|
存储 C语言
【数据结构】顺序表的定义和运算
【数据结构】顺序表的定义和运算
183 0
|
4月前
|
存储 机器学习/深度学习 C语言
数据结构基础详解(C语言): 树与二叉树的基本类型与存储结构详解
本文介绍了树和二叉树的基本概念及性质。树是由节点组成的层次结构,其中节点的度为其分支数量,树的度为树中最大节点度数。二叉树是一种特殊的树,其节点最多有两个子节点,具有多种性质,如叶子节点数与度为2的节点数之间的关系。此外,还介绍了二叉树的不同形态,包括满二叉树、完全二叉树、二叉排序树和平衡二叉树,并探讨了二叉树的顺序存储和链式存储结构。
|
4月前
|
存储 索引
数据结构练习之线性表定义与操作
有限序列:这意味着序列的长度是固定的,不会无限延伸,这与计算机资源的限制相符。在实际应用中,数据结构的大小通常是有限制的,因为内存和存储资源是有限的。
60 4
数据结构入门(C语言版)二叉树的顺序结构及堆的概念及结构实现应用(下)
这里的向上调整函数就是指定一个元素与其父亲比较,如果孩子小于父亲,就交换常用于小堆的插入与堆排序。
|
8月前
|
存储 缓存 索引
数据结构——顺序表的概念和基本操作(超全超详细)
数据结构——顺序表的概念和基本操作(超全超详细)
|
8月前
|
存储
线性表的概念
线性表的概念
111 2
|
8月前
|
存储 C语言 索引
C语言数据结构(链表概念讲解和插入操作)
C语言数据结构(链表概念讲解和插入操作)
125 0
|
存储
数据结构 2.1 线性表的定义和基本操作
数据结构 2.1 线性表的定义和基本操作
78 0
|
存储 编译器 程序员
C/C++(数组概念)
C/C++(数组概念)