![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
840数据结构
云上成理
在迷茫中前行,不断修正
展开
-
【栈,队列和数组】数组和特殊矩阵
通过构建一个大小为(1+n)*n/2的数组,可以实现一个映射函数,将矩阵下标->一维数组下标。压缩存储:指对多个值相同的元素只分配一个存储空间,对零元素不分配存储空间。二维数组可视为其元素也是定长线性表的线性表。b[i][j]的存储地址=LOC+(i*N+j)*sizeof(ElemType)数据结构中考虑的是如何用最小的内存空间来存储同样一组数据。对于多维数组,分为按行优先和按列优先。对角矩阵,三角矩阵,三对角矩阵,稀疏矩阵。存储,上述ij对换,将N换成M。法二:十字链表法,链式存储。原创 2023-08-06 18:27:26 · 127 阅读 · 0 评论 -
【第三章】栈
【不懂】上图中7行,声明一个指针,不是应该写为struct LinkNode *next吗?两个指针top0和top1,top为-1,top1为MaxSize;当两个指针之间相差一,则满(top1-top0=1),只是为了有效地利用存储空间,时间复杂度还是为O(1),对存储效率没有什么影响。并规定所有的操作都是在单链表的表头进行的,书上规定,链栈。书上将顺序表唯一的指针初始化为-1,也可以初始化为0。】带头节点和不带头节点的链栈,具体实现会有所不同。LIFO 卡特兰数。原创 2023-07-27 16:08:45 · 106 阅读 · 0 评论 -
【第二章】线性表-顺序表(综合应用题)
01.从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。04.从有序顺序表中删除其值在给定值s与t之间(要求s<t)的所有元素,如果s或t不合理或者顺序表为空则显示出错信息并退出执行。03.长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数元素。02.设计一个高效的算法,将顺序表的所有元素逆置,要求算法的空间复杂度为O(1)原创 2023-07-26 11:49:23 · 90 阅读 · 0 评论 -
【第二章】线性表-顺序表(选择题)
链表:要依次读取1,2号元素的指针,然后哦才能找到3号数据的位置,再进行对3,4号元素的修改操作。是逻辑概念,只要所有的数据在逻辑上是一维的都可以认为是线性表。线性表包括顺序表(栈,队列等),链表(栈,队列等)。若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为了提高效率,应采用顺序表的存储方式。是空间概念,指的是所有的数据在存储空间上顺序排列,而跟具体的操作方式无关。与顺序表相对的概念只有链表。对于用顺序表来存储树,可以将树想象成满树,空的节点就在线性表中写成NULL,但是非常浪费空间。原创 2023-07-26 10:02:56 · 82 阅读 · 0 评论