
数据结构
文章平均质量分 51
小洋洋呢
一个菜狗的日常
展开
-
多维数组的存储计算
推荐一个写的比较好的文章(https://zhuanlan.zhihu.com/p/88247982)转载 2021-11-02 20:53:43 · 276 阅读 · 0 评论 -
数据结构与算法之哈夫曼树与哈夫曼编码
哈夫曼树对于哈夫曼树,凡是学过离散数学的同学肯定不会陌生,这里我们简略它的介绍。哈夫曼树就是最优二叉树,即叶子个数和各个叶子的权值确定的情况下,树的带权路径长度(树中所有叶子结点的带权路径(带权路径即结点到树根的路径长度与结点权的乘积)之和)WPL最小。具体画哈夫曼树的方法见:https://jingyan.baidu.com/article/a501d80c16dfa0ec620f5e70.html对于哈夫曼树的存储我们一般采用静态三叉链表,如下所示:weight:权值Parent:双亲结点原创 2021-11-02 19:41:13 · 3675 阅读 · 0 评论 -
PTA练习之约瑟夫问题
Josephus问题描述:编号为1,2,…,n的n个人按顺时针方向围坐在一张圆桌周围,每人持有一个密码(正整数)。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报m的那个人出列,将他的密码作为新的m值,从他顺时针方向的下一个人开始重新从1报数,数到m的那个人又出列;如此下去,直至圆桌周围的人全部出列为止。要求按出列顺序输出n个人的编号。输入格式:第一行输入两个整数,依次表示人数n和初始化密码m,以空格间隔。 第二行依次输入n个整数,分别表示n个人的密码原创 2021-09-12 15:00:10 · 3493 阅读 · 0 评论 -
数据结构与算法学习笔记(二)单链表的逆置与循环链表
单链表的逆置思路:现将头表置空,随后使用头插法进行操作。具体单链表操作见文章:链表的基本操作分别定义两个指针一个指向移动的数据,另一个指向下一个数据进行移动。void Reverse_linklist(Linklist H){ Linklist p, q; p = H->next; H->next = NULL;//置空表 while(p) { q = p; p = p->next; q-&g原创 2021-09-12 10:25:03 · 279 阅读 · 0 评论 -
数据结构与算法学习笔记(一) 顺序表
学校开始了数据结构与算法的课程,为了巩固学习,对此课程进行了总结和记录以及练习。顺序表的插入、删除和查找#include <stdio.h>#include <stdlib.h>#define Maxsize 10这里的Maxsize 为顺序表可能达到的最大长度,这里的线性表,我选择使用int型的简单数据存储顺序表的定义typedef struct List{ int elem[Maxsize];//存储当前空间 int length;//线性表的长原创 2021-09-06 20:29:30 · 166 阅读 · 1 评论 -
数据结构学习笔记之队列和栈
初学队列queue引例:解密QQ号解密规则如下:给入一串数字,首先将第一个数删除,再将第二个数放在末尾,再删除第三个数将第四个数放在末尾,再将第五个数删除······以此类推·最后把删除的数字依次序读出。例如:123456 ==> 34562 ===> 5624 ===> 246 ===> 64 ===>4======> 135264我们引出两个整型变量 head和tail。head用来记录队列的队首,tail用来记录队列的对尾的下一个位置。我们在这里利用队原创 2021-05-24 21:45:08 · 556 阅读 · 0 评论