
数据结构-C 随笔
文章平均质量分 77
Now For Tomorrow
The closer you look, the less you see.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言实现数据结构顺序存储
C语言实现数据结构顺序存储// 头文件#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define MAXSIZE 10//顺序存储结构 模仿数组的相关操作typedef int DataType;typedef struct{ DataType data[MAXSIZ...原创 2019-05-25 16:03:00 · 3463 阅读 · 2 评论 -
【二叉树】先序、中序、后序遍历规则和已知两种遍历求另外一种遍历。包教包会!【】
一、二叉树先序遍历1、先序遍历的访问过程(根左右)(1)先访问根节点(2)先序遍历根节点的左子树(3)先序遍历根节点的右子树2、流程图及原理解释先序遍历流程图解释:由于先序遍历先访问的是根节点,所以先访问的是根节点A,再访问左节点B,由于左节点B仍然是一个根节点,所以继续访问的是根节点B的左节点D,由于D没有左右结点,所以再访问B的右节点E。E访问完之后,A的左子树算是全部访问完毕...原创 2019-06-09 22:19:25 · 3247 阅读 · 8 评论 -
哈夫曼编码C代码实现--数据结构
哈夫曼编码的实现过程请读者结合上一篇哈夫曼树的博客,便于理解该篇文章。简单来说,哈夫曼编码是将构造的哈夫曼树按照左孩子都标记为0 右孩子都标记为1的原则。通过此种标记的手段标记的哈弗曼树能够将编码的长度压缩到最小。本程序中默认将权值较小置为左孩子。代码实现如下 可能不是主流思路,只是看了原理自己手写的。望指正!文末附有测试过程#include <stdio.h>#inclu...原创 2019-06-14 16:56:02 · 3438 阅读 · 13 评论 -
数据结构之静态栈的退栈和进栈操作
主要是进栈和退栈以及遍历的相关简单代码代码实现如下#include <stdio.h>#include <stdlib.h>#define MAXSIZE 10typedef struct{ int data[MAXSIZE]; int top;//栈顶指针}Sqstack;void Init_Stack(Sqstack *S);void...原创 2019-06-08 17:26:28 · 2926 阅读 · 0 评论 -
数据结构栈练习题之回文数
回文数的栈实现思路/*回文数判断的思想1.需要用到两个栈 一个栈用于压栈 一个用于退栈的接收 这里用到的是静态栈2.退栈的次数是len / 2 次3.回文数分为奇数个和偶数个两种情况*/代码实现#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100//为了简化代码 假设空间足够大 不存在...原创 2019-06-08 17:24:09 · 805 阅读 · 0 评论 -
数据结构之链队列及其相关操作
数据结构之链队列及其相关操作#include <stdio.h>#include <stdlib.h>typedef struct node //定义链队列结点类型{ int data; struct node *next;}QueueNode;typedef struct //定义链队列对头指针和队尾指针{ Queue...原创 2019-06-08 15:24:41 · 158 阅读 · 0 评论 -
数据结构之Huffman(哈夫曼)树
哈夫曼树代码自己手撸的 只看了一遍思路 -.- 望指正思路重现1.根据给定的n个权值{w1,w2, …wn}构造n棵只有一个叶结点的二叉树,从而得到一个二叉树的集合F = {T1 T2 T3 …Tn}2.在F中选取根节点的权值最小和次小的两颗二叉树作为左右子树构造一颗新的二叉树,这棵二叉树根节点的权值为其左右子树根节点权值之和。3.在集合F中删除作为左右子树的两颗二叉树,并将新建的二叉树...原创 2019-06-13 21:45:58 · 643 阅读 · 1 评论 -
数据结构之循环队列的相关操作
数据结构之循环队列的相关操作#include <stdio.h>#include <stdlib.h>#define MAXSIZE 10 //队列最大长度#define FLAG -1 //停止入队的标志//定义循环队列的结构体typedef struct{ int data[MAXSIZE]; int front,rear;/...原创 2019-06-05 21:45:32 · 200 阅读 · 2 评论 -
删除单链表中的重复元素
删除单链表中的重复元素代码实现#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define FLAG -1 //停止输入的标志typedef struct Node{ int data; struct Node * next;}LNode,*LinkList;...原创 2019-05-25 16:31:00 · 247 阅读 · 0 评论 -
删除有序单链表中值大于x而不大于y的结点
删除有序单链表中值大于x而不大于y的结点代码实现#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define FLAG -1 //停止输入的标志typedef struct Node{ int data; struct Node * next;}LNode,*...原创 2019-05-25 16:29:19 · 2549 阅读 · 0 评论 -
拆分一个链表为偶数链表和奇数链表
拆分一个链表为偶数链表和奇数链表问题简述设计一个算法,将一个结点值为自然数的单链表拆分为两个单链表,原表中保留值为偶数的结点,而值为奇数的结点按他们在原表中的相对次数组成一个新的单链表代码实现#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define FLAG -1 //停止...原创 2019-05-25 16:27:19 · 4625 阅读 · 0 评论 -
使用顺序结构完成约瑟夫问题
使用顺序结构完成约瑟夫问题//关键代码 index = (index + m - 1) % L->length;#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define MAXSIZE 10//顺序存储结构 模仿数组的相关操作typedef int DataType;...原创 2019-05-25 16:22:00 · 450 阅读 · 0 评论 -
单链表按元素查找并插入,若不存在需要查找的元素,则在单链表最后插入
单链表按元素查找并插入,若不存在需要查找的元素,则在单链表最后插入代码实现#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define FLAG -1 //停止输入的标志typedef struct Node{ int data; struct Node * n...原创 2019-05-25 16:18:55 · 831 阅读 · 1 评论 -
数据结构中双向链表和双向循环链表C语言实现
#include <stdio.h>#include <stdlib.h>#define FLAG -1 //停止输入的标志typedef struct Node{ struct Node * prior; int data; struct Node * next;}LNode,*LinkList;void CreateDoubleL...原创 2019-05-25 16:12:26 · 624 阅读 · 0 评论 -
约瑟夫问题——C语言实现
约瑟夫问题约瑟夫问题简述约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后 [1] 结果+1即为原问题的解。代码实现#include <stdi...原创 2019-05-25 16:09:47 · 14438 阅读 · 0 评论 -
C语言实现数据结构静态链表的相关操作
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define FLAG -1 //停止输入的标志typedef struct Node{ int data; struct Node * next;}LNode,*LinkList;void show_List1...原创 2019-05-25 16:07:18 · 267 阅读 · 0 评论 -
C语言实现数据结构单链表的相关操作
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define FLAG -1 //停止输入的标志typedef struct Node{ int data; struct Node * next;}LNode,*LinkList;void show_List1...原创 2019-05-25 16:06:07 · 321 阅读 · 0 评论 -
数据结构之链栈及其相关操作
数据结构之链栈及其相关操作#include <stdio.h>#include <stdlib.h>#define FLAG -1 //停止输入的标志//定义结点typedef struct node{ int data; struct node *next;}StackNode,*LinkStack;void Create_Stack(L...原创 2019-06-04 21:00:50 · 183 阅读 · 0 评论