
数据结构
echoSuccess
这个作者很懒,什么都没留下…
展开
-
环形buffer C语言简单实现
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct circlebuffer { int size;//用于判断环形buffer是否是满的 int wroffset; int rdoffser; char * buf; int buflen; }circl...原创 2018-08-26 19:09:05 · 4396 阅读 · 1 评论 -
C链表是否有环,以及环的位置
node * ifCircle(node *head ) { node * fast=head,*slow=head; node * findInNode1,node *findInNode2; //为什么这里以fast!=NULL 和fast->next!=NULL //因为fast跑到快,所以这里以fast作为判断条件 //因为下边有fast->next->nex...原创 2018-08-26 20:42:29 · 26722 阅读 · 0 评论 -
记录一下,C链表的反转
给自己复习使用,如果谁不幸搜到,请无视。 如果忘记代码思路的时候,可以再推演一下图中的过程,需要三个指针,三个指针紧邻三个元素,每一次循环结束newfirst指向新链表的第一个元素,oldFirst指向旧链表的第一个,oldFirstNext指向旧链表的第一个的下一个。图中p ,q,r分别是上边说的三个指针。 代码实现: list * ReverseList(list * head)...原创 2018-08-27 11:58:46 · 259 阅读 · 0 评论 -
再记录一下删除链表的倒数第N个元素
之前一直没关注过数据结构,最近猛刷一下。 删除倒数第N个元素,也是用两个指针,一个是先走,走了N-1次,因为刚开始指向head,这一次就不用走了。然后再然back指针走,这样front指针走到结尾的时候(指向最后的指针的时候)那么back就是指向要删除的指针了,又因为删除指针,要知道这个指针的前一个指针,所以要用一个指针,记录back的前一个指针。当然还要判断倒数第N个链表节点是否存在。下边是代...原创 2018-08-27 15:30:23 · 165 阅读 · 0 评论 -
数据结构之单向链表代码。
记录单向链表的插入,打印,删除等操作代码,下边是代码 #include <stdio.h> #include <stdlib.h> typedef struct Listnode { void * data;//数据域可以是任意类型,比如下文的结构体 struct Listnode * next; }listnode; typedef struct { listn...原创 2018-08-25 17:33:11 · 240 阅读 · 0 评论 -
C语言动态数组
C语言数组目前我知道两种动态数组和环形buffer,先写一个动态数组,等下写个环形bufer。 以下是代码和实验现象 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct damicArray { int size;//使用量 int capacity; i...原创 2018-08-25 23:26:11 · 972 阅读 · 0 评论