数据结构:相互之间存在一种或多种特定关系的数据元素的集合。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从具体问题抽象出来的数学模型,从逻辑关系上描述数据,它与数据的存储无关。
非线性结构:具有多个分支的层次结构
集合结构:数据元素之间除了“属于同一集合”的关系外,别无其他关系。树形结构:数据元素之间存在一对多的关系。
树二叉树图状结构:数据元素之间存在多对多的关系。
有向图(边是顶点的有序对)无向图(边是顶点的无序对)线性结构:数据元素之间存在一对一的关系。
线性表
一般线性表
线性表特殊线性表
栈与队列字符串线性表的推广
数组广义表存储结构(物理结构):逻辑结构在计算机中的存储表示
顺序存储结构:连续的存储空间链式存储结构:无需占用一整块存储空间抽象数据类型:由用户定义的、表示应用问题的数据模型,以及定义在这个模型上的操作的总称。
数据对象数据对象上关系的集合对数据对象的基本操作的集合顺序表顺序存储定义把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。简言之,逻辑上相邻,物理上也相邻顺序存储方法用一组地址连续的存储单元依次存储线性表的元素,可通过数组V[n]来实现。顺序表的特点利用数据元素的存储位置表示线性表中相邻数据元素之间的前后关系,即线性表的逻辑结构与存储结构一致在访问线性表时,可以快速地计算出任何一个数据元素的存储地址。因此可以粗略地认为,访问每个元素所花时间相等 顺序表的优缺点优点
存储密度大(结点本身所占存储量/结点结构所占存储量)可以随机存取表中任一元素缺点
在插入、删除某一元素时,需要移动大量元素浪费存储空间属于静态存储形式,数据元素的个数不能自由扩充C++代码实现#include stdlib.h #include iostream using namespace std; #define MAXSIZE 100 #define OVERFLOW -2 #define ERROR -1 #define OK 1 typedef int Status; typedef int ElemType; // 非整型 // 结点结构体 typedef struct { ElemType* elem; int length; // int listsize; }Sqlist; // 初始化顺序表 Status InitList_Sq(Sqlist L) L.elem = new ElemType[MAXSIZE]; if (!L.elem) exit(OVERFLOW); L.length = 0; return OK; // 销毁顺序表 void DestroyList(Sqlist L) if (!L.elem) delete[] L.elem; // 清空顺序表 void ClearList(Sqlist L) L.length = 0; // 获取顺序表的长度 int GetLength(Sqlist L) return L.length; // 判断顺序表是否为空 int IsEmpty(Sqlist L) if (!L.elem) return 1; else return 0; /*Status insert(Sqlist L, int i, ElemType e) int j; if (i 1 || i L.length + 1) return ERROR; if (L.length == MAXSIZE) return OVERFLOW; for (j = L.length - 1; j = i - 1; j--) L.elem[j + 1] = L.elem[j]; L.elem[i - 1] = e; L.length++; return OK; // 在 i 处插入元素 Status ListInsert_Sq(Sqlist L, int i, ElemType e) // 在顺序表L的第 i 个元素之前插入新的元素e if (i 1 || i L.length + 1) return ERROR; if (L.length == MAXSIZE) return OVERFLOW; ElemType* p, * q; q = (L.elem[i - 1]); for (p = (L.elem[L.length - 1]); p p--) * (p + 1) = *p; *q = e; L.length++; return OK;
本文转自网络,原文链接:https://developer.aliyun.com/article/786775
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付...
查看表结构,sbtest1有主键、k_1二级索引、i_c二级索引 CREATE TABLE `sbtest1` ...
一、PostgreSQL行业位置 一 行业位置 首先我们看一看RDS PostgreSQL在整个行业当...
2020年对于云计算行业来说是突破性的一年,因为公共云供应商增加了收入,而疫情...
在TOP云(zuntop.com)科技租赁过服务器的站长都知道独立服务器在价格上比VPS主...
定义 this是函数运行时自动生成的内部对象,即调用函数的那个对象。(不一定很准...
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/vlOUg46B5bcmToX-fjavJQ...
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁...
9月17日,2020云栖大会上,阿里云正式发布工业大脑3.0。 阿里云智能资深产品专家...
中国最?好的一朵云飘进了华瑞银行。阿里云将进一步助力华瑞银行All in Cloud。 -...