画解数据结构
文章平均质量分 55
霍格沃茨究极讲师
这个作者很懒,什么都没留下…
展开
-
画解数据结构之队列之单调队列
最值问题第一题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 · 1085 阅读 · 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 · 268 阅读 · 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 · 666 阅读 · 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 · 344 阅读 · 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 · 172 阅读 · 0 评论 -
画解数据结构1-4栈
一.概念1、栈的定义 栈 是仅限在 表尾 进行 插入 和 删除 的 线性表。2、栈顶 栈 是一个线性表,我们把允许 插入 和 删除 的一端称为 栈顶。二。栈的顺序表实现1、数据结构定义对于顺序表,在 C语言 中表现为数组,在进行栈的定义之前,我们需要考虑以下几个点: 1)栈数据的存储方式,以及栈数据的数据类型; 2)栈的大小; 3)栈顶指针;我们可以定义一个栈的结构体,C语言实现如下所示:#define DataType int ...原创 2022-04-27 02:19:41 · 294 阅读 · 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 · 244 阅读 · 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 · 186 阅读 · 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 · 1394 阅读 · 0 评论 -
画解数据结构1-3 单向链表
一。链表概念1.链表定义由于顺序存储的结构,如数组,插入和删除时要移动大量元素,人们发明了链表链表由一个个结点组成,每个结点每个 结点 之间通过 链接关系 串联起来,每个 结点 都有一个 后继节点,最后一个 结点 的 后继结点 为 空结点。链表分为单向链表、双向链表、循环链表等等,本文要介绍的链表是单向链表2.结点结构体定义typedef int datatype;struct ListNode{datatype data;ListNode *next;//next指...原创 2022-04-21 16:27:13 · 1367 阅读 · 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 · 270 阅读 · 0 评论 -
画解数据结构1.1刷题线性枚举之其他
第一题二分查找:先设目标值为x,看x左右有什么区别原创 2022-04-20 14:39:09 · 88 阅读 · 0 评论 -
画解数据结构 1-2 字符串
知识点:1.字符串是特殊的字符数组,有结尾字符\02.用strlen(c)获取字符串长度3.字符串遍历的三种结束方式:1.strlen2.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 · 98 阅读 · 0 评论 -
画解数据结构刷题 线性枚举之原地算法
第一题属于是做了又忘了定义快指针和慢指针,快指针用来检验,慢指针用来储存,因为是升序排列,所以相同的数只会存在于数的左右,所以检验快指针时,只需要检验快指针-1的位置,如果相等,则无需改变,只需将fast++,检验下一个数,如果不相等,则说明fast与之前的数都不相等,就用fast指针的数代替slow指针的数,并且将fast和slow都++...原创 2022-04-20 01:09:36 · 107 阅读 · 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 · 92 阅读 · 0 评论 -
画解数据结构1.1顺序表 排序 二分查找
顺序表顺序储存,是指用一段地址连续的存储单元依次存储线性表的数据元素。数据结构定义#define maxn[10000]#define Datatype intstruct 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 · 196 阅读 · 0 评论