1、基本概念(如何有效的高效的研究数据的存储)
数据结构是一门研究如何有效组织数据,并提高数据处理效率的学科。通过研究各种数据内部的逻辑关系,使用某种特定的存储形式,并在此基础上对数据实施各种操作,这些工作被称为称为广义上的算法。
- 逻辑结构:线性表,集合,树,图等结构
2、顺序表
- 基本概念:顺序存储的线性表;如果有n个元素,其中一个a元素有且只有一个前驱a-1,有且只有一个后去a+1,首元素没有前驱a0-1,尾元素没有后驱an+1;当中的数据是一个挨着一个的,常被称为一对一关系。反之,如果数据之间的关系不是一对一的,就是非线性的。
-
顺序存储就是将数据存储到一片连续的内存中,在C语言环境下,可以是具名的栈数组,或者是匿名的堆数组。
顺序表的设计:
- 设计一个专门管理顺序表的”管理结构体“,管理结构体中一般会包含:
- 顺序表总容量
- 顺序表当前最末元素下标位置
- 顺序表指针
struct seq
{
int cap; // 顺序表容量
int last; // 最末元素下标
int * data; // 顺序表,以整型数据为例
};
2.初始化顺序表:
//初始化顺序数据表
struct seq *init_callloc(int cap)
{
struct seq *p=calloc(1,sizeof(struct seq));
if (p!=NULL)
{
p->cap=cap;
p->last=0;
p->data=calloc(1,sizeof (int)*cap);
if (p->data!=NULL)
return p;
else
free(p);
}
}
3.增删,遍历,查找节点:
//判断是否为空
bool seq_Empty(struct seq *s)
{
return s-&