版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/jay100500/article/details/82959341
作者:谭东
最近把之前学过的数据结构和算法部分都重新研究看完了,整理分享一下。数组和矩阵应该都熟悉,广义表就是线性表里面元素可能是子线性表。
1、先看数组:
数组是定长线性表在维数上的扩展,即线性表中的元素又是一个线性表。n维数组是一种“同构”的数据结构,其每个数据元素类型相同、结构一致。数组是用于储存多个相同类型数据的集合。
数组特点:
1)数组是一种最简单的数据结构,它占据一块连续的内存并且顺序存储数据,所以我们需要首先指定数组的大小;
2)数组的空间效率不是很好,会有空闲的区域没有得到充分的应用;
3)数组的时间复杂度为O(1);
一维数组:由一组具有相同类型的数据元素组成,并存储在一组连续的存储单元中的数组元素我们称之为数组。
二维数组:若一维数组中的数据元素又是一维数组结构,我们称为二维数组。二维数组可以看成是n个列向量组成的线性表。
三维数组:以此类推,若一维数组中的元素又是二维数组结构,我们称为三维数组。
N维数组:一般,一个n维数组可以看成元素为n-1维数组的线性表。
设有n维数组A[b2,b2,b3...,bn],其每一维的下界都为1,bi是第i维的上街。n维数组A中每个元素A[j1,j2,j3,...,jn](1≤ji
≤bi)都被n个关系所约束。在每个关系中,除了第一个和最后一个元素外,其余元素都只有一个直接后继和一个直接前驱。因此就单个关系而言,它仍然是现行的。