- 博客(9)
- 收藏
- 关注
原创 状态压缩dp
前后两个合并起来了,那么往第三列传递的状态应该为前两列的状态合并 ,便为 (k|j),前面的状态会影响到后面的状态,图1: 第一列为1100,第二列为0011,这样不会有交集是合法的,倘若第二列为1111,j在数组中,可以看作一个二进制的数,此二进制的数代表了某一列中,每一行的状态,但是。此题里,一共有两种放置的方式,横放和竖放,我们可以用什么来表示这两种状态呢?所以需要判断合并后的列的空余位置是否可以放入竖放的(也就是是否有连续的0).1和0 ,1就代表该位置横放,0就代表该位置竖放。
2024-07-10 21:07:55
495
原创 数据结构——队列(C语言的实现)
typedef struct QueueNode //整体框架,一个元素的结构//结构体指针内又存放着其他数据,为单链表}QNode;//内部结构typedef struct Queue//队列更适合用链式结构去实现,队列的结构//出数据 用QNode修饰,那么说明phead也可以指向下一个元素next和储存data//入数据int size;//记录大小,虽然链表没有大小限制,但是可以方便读取大小,不需要遍历}Queue;
2024-01-20 14:09:38
605
原创 数据结构——栈(C语言实现)
栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小——所以栈的实现也可以看做一个顺序表,只不过增添元素和删除元素的方式是不一样的。int top;//顶部数据//容量}ST;//顶部入栈,从顶部插入数据因此结构体定义的* a指针 就是指向一段动态开辟的数组。
2024-01-19 21:49:59
781
1
原创 数据结构——双向链表(C语言实现)
上述文章已经解释了什么是单向链表数据结构——单向链表(C语言实现)-优快云博客那么正如字面意思,双向链表就是前后都可以指向的链表,就不仅仅是单一的连接后一个元素的链表。}LTNode;// 在pos之前插入// 删除pos位置的值有些友友可能会问“双向链表从结构上看也是有一个个指针结点连接而成,那么对其进行插入和删除的时候,为什么不是用二级指针来接收?这里我们要知道无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结 构的子结构。
2024-01-19 17:50:02
1502
1
原创 数据结构——单向链表(C语言实现)
无头链表:以结点为开头的链式结构——————同时也是非循环链表typedef struct SListNode//定义的是结点的结构//存放数据//存放下一个位置的地址}SLTNode;//pos就是节点的指针。
2024-01-18 22:28:05
2092
1
原创 数据结构——顺序表(C语言的实现)
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存 储。在数组上完成数据的增删查改。并且顺序表中每个元素会有一个叫做“下标”的数字与之对应,也就是我们熟知的“索引”
2024-01-18 20:07:52
427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅