画解数据结构
文章平均质量分 55
zzz#*
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
画解数据结构之队列之单调队列
最值问题 第一题 typedef struct { struct Queue q1; struct Queue q2;//存最大值 int idx; } MaxQueue; MaxQueue* maxQueueCreate() { MaxQueue* ret=(MaxQueue*)malloc(sizeof(MaxQueue)); QueueClear(&ret->q1); QueueClear(&ret->q2); ret->idx=0; return.原创 2022-05-04 17:08:23 · 1165 阅读 · 0 评论 -
画解数据结构刷题之队列之FIFO队列
简单队列 第一题 int timeRequiredToBuy(int* tickets, int ticketsSize, int k){ int cnt=0; int i=0; while(tickets[k]!=0) { if(tickets[i]>0) { tickets[i]--; cnt++; } i++; if(i==ticketsSize) .原创 2022-05-03 00:23:20 · 348 阅读 · 0 评论 -
画解数据结构之队列
一。概念 队列是仅限在一端进行插入,另一端进行删除的线性表。 队列又被称为 先进先出 (First In First Out) 的线性表,简称 FIFO 。 进行元素删除的一端为队首 插入的一段为队尾 二。队列的顺序表实现 1.数据结构实现 struct queue{ Datatype data[maxn]; int head,tail; } 2.入对 void QueueEnqueue(struct Queue *que, DataType dt) { // (...原创 2022-05-01 21:04:46 · 834 阅读 · 0 评论 -
画解数据结构刷题之栈之单调栈
单调栈 第一题 typedef struct { int stack[10000]; int stacktop; int minstack[10000]; int minstacktop; }MinStack;//辅助栈,栈顶存最小值; MinStack* minStackCreate() { MinStack* newStack = (MinStack *) malloc(sizeof(MinStack)); newStack->.原创 2022-05-01 01:12:35 · 448 阅读 · 0 评论 -
画解数据结构刷题之栈之lifo栈
LIFo栈之逆序链表 第一题 int* reversePrint(struct ListNode* head, int* returnSize){ int vec[10000];//辅助栈 int top=0; struct ListNode*cur=head; while(cur)//入栈 { vec[top++]=cur->val; cur=cur->next; } int i=top; *returnSize=i; int temp=0; int*ret=(int原创 2022-04-29 15:52:08 · 245 阅读 · 0 评论 -
画解数据结构1-4栈
一.概念 1、栈的定义 栈 是仅限在 表尾 进行 插入 和 删除 的 线性表。 2、栈顶 栈 是一个线性表,我们把允许 插入 和 删除 的一端称为 栈顶。 二。栈的顺序表实现 1、数据结构定义 对于顺序表,在 C语言 中表现为数组,在进行栈的定义之前,我们需要考虑以下几个点: 1)栈数据的存储方式,以及栈数据的数据类型; 2)栈的大小; 3)栈顶指针; 我们可以定义一个栈的结构体,C语言实现如下所示: #define DataType int ...原创 2022-04-27 02:19:41 · 374 阅读 · 0 评论 -
画解数据结构刷题之循环链表
循环链表 第一题 struct Node* insert(struct Node* head, int insertVal) { struct Node*new=malloc(sizeof(struct Node)); new->next=new; new->val=insertVal; if(head==NULL) { head=new; head->next=new; return head; } struct N.原创 2022-04-27 01:43:56 · 339 阅读 · 0 评论 -
画解数据结构刷题之单向链表(翻转函数)
链表回文 第一题 bool isPalindrome(struct ListNode* head){ struct ListNode*cur=head; struct ListNode*vec[100001]; int i=0; while(cur) { vec[i]=cur->val; cur=cur->next; i++; } int p=0; int q=i-1; while(p<q) { if(vec[p]!=vec[q]) { ret原创 2022-04-26 14:29:21 · 262 阅读 · 0 评论 -
画解数据结构刷题1-3单向链表
链表旋转 第一题 struct ListNode* rotateRight(struct ListNode* head, int k){ if(k==0||head==NULL||head->next==NULL) { return head; } struct ListNode *vtx=head; int len=1; while(vtx->next){ vtx=vtx->next; len++; } vtx->next=head; k=k%len; int a原创 2022-04-23 00:15:30 · 1466 阅读 · 0 评论 -
画解数据结构1-3 单向链表
一。链表概念 1.链表定义 由于顺序存储的结构,如数组,插入和删除时要移动大量元素,人们发明了链表 链表由一个个结点组成,每个结点每个 结点 之间通过 链接关系 串联起来,每个 结点 都有一个 后继节点,最后一个 结点 的 后继结点 为 空结点。 链表分为单向链表、双向链表、循环链表等等,本文要介绍的链表是单向链表 2.结点结构体定义 typedef int datatype; struct ListNode { datatype data; ListNode *next;//next指...原创 2022-04-21 16:27:13 · 1457 阅读 · 0 评论 -
画解数据结构1.1线性枚举之二维数组 字符串强转数字
第一题 先排序,后双指针,如相等就插入,双指针++,不相等就小的++ 第二题 void swap(char*a,char*b) { char temp=*a; *a=*b; *b=temp; } int cmp(const void*a, const void*b) { return *((char*)b)-*((char*)a);//从大到小 } int maximumSwap(int num){ int m; if(num==0) { ..原创 2022-04-20 21:36:33 · 348 阅读 · 0 评论 -
画解数据结构1.1刷题线性枚举之其他
第一题 二分查找: 先设目标值为x,看x左右有什么区别原创 2022-04-20 14:39:09 · 134 阅读 · 0 评论 -
画解数据结构 1-2 字符串
知识点: 1. 字符串是特殊的字符数组,有结尾字符\0 2.用strlen(c)获取字符串长度 3. 字符串遍历的三种结束方式: 1.strlen 2.s[i]='\0' 3.s[i]==0 知识点4.大小写转换s[i]-'A'+'a' 5.字符串拷贝 strcpy(a,b) 6.字符串比较 strcmp(a,b)//区分大小写 7. ...原创 2022-04-20 01:25:00 · 148 阅读 · 0 评论 -
画解数据结构刷题 线性枚举之原地算法
第一题 属于是做了又忘了 定义快指针和慢指针,快指针用来检验,慢指针用来储存,因为是升序排列,所以相同的数只会存在于数的左右,所以检验快指针时,只需要检验快指针-1的位置,如果相等,则无需改变,只需将fast++,检验下一个数,如果不相等,则说明fast与之前的数都不相等,就用fast指针的数代替slow指针的数,并且将fast和slow都++ ...原创 2022-04-20 01:09:36 · 155 阅读 · 0 评论 -
画解数据结构1.1习题线性枚举之最值算法
线性枚举之最值算法 1. j从i+1开始遍历 二. 只能是1或0,是1就count++,并更新maxc,是0就将count置零 三。 之前做过但忘得差不多了,每次取mid将其与high进行比较,>high就说明mid在最小值左边,所以更新边界 四。 唯一区别是数组元素可以相等 所以区别是当mid与high数值相等时,无法判断最小值究竟在哪个区间,所以此时抛弃右边界,将right=right-1 五。 ...原创 2022-04-18 23:48:11 · 133 阅读 · 0 评论 -
画解数据结构1.1顺序表 排序 二分查找
顺序表 顺序储存,是指用一段地址连续的存储单元依次存储线性表的数据元素。 数据结构定义 #define maxn[10000] #define Datatype int struct leqlist{ Datatype data[maxn]; int length; } 2.常用接口 (1)索引:通过数组下标寻找数组元素 Datatype SeqlistIndex(struct Seqlist *sq,int i) {return sq->data[i];} (2)查找 ...原创 2022-04-18 20:34:16 · 260 阅读 · 0 评论
分享