数据结构(c语言版)
凉柒-lq
学习,永无止境
展开
-
链表的基本运算,插入,删除和输出
【问题描述】设计并实现线性表的单链表存储和运算。【基本要求】实现单链表的插入、删除和遍历运算,每种操作用一个函数实现。 插入操作:将一个新元素插入表中指定序号的位置。 删除操作:将指定序号的元素从表中删除。 遍历操作:从表头按次序输出所有元素的值,若是空表,则输出信息“empty list!”。【实现提示】程序运行时,首先在 main 函数中创建空的、带头结点的单链表。然后多次...原创 2018-10-14 02:26:17 · 2630 阅读 · 1 评论 -
根据先序和中序序列重建二叉树(打印二叉树的后序序列)
1.重建条件我们知道,要重建二叉树,必须得有中序序列,有了中序,才可以划分出根结点的左子树和右子树。而由先序和后序可以很容易确定根结点,因此,先序和中序或者后序和中序可以唯一确定二叉树。此处运用递归的方法,仅以先序和中序序列为代表,给出重建二叉树的代码,供大家参考。2.核心代码//根据先序和中序重建二叉树,pre和mid分别指向先序和中序序列,n为结点总数BiTree Bu...原创 2018-11-22 20:45:56 · 762 阅读 · 0 评论 -
求二叉树的高度和叶子结点的个数
叶子结点即是左右子树都为空的结点,求叶子结点的个数。1.先运用递归的方式创建二叉树,上篇已经提过,可以自行查阅,此处不做赘述。//创建二叉树Status CreateBiTree(BiTree &T){ char ch; scanf("%c",&ch); if (ch=='.') T = NULL; else {...原创 2018-11-22 20:18:17 · 4122 阅读 · 0 评论 -
字符串的基本操作(包括串赋值,串拼接,求子串,查找串,删除与插入等等)
1.串的定义 串(String)是零个或多个字符组成的有限序列。一般记作:S=“a1a2a3…an”,其中,S是串名; “a1a2a3…an”是串值;ai(1≤i≤n)可以是字母、数字或其它字符;串的长度:串中所包含的字符个数;空串:长度为零的串称为空串(Empty String),它不包含任何字符。空白串: 通常将仅由一个或多个空格组成的串称为空白串(Blank St...原创 2018-11-19 17:58:08 · 22844 阅读 · 3 评论 -
二叉树的先序遍历,中序遍历,后序遍历和层序遍历
1.二叉树的构成任何一个非空的二叉树都由根结点、左子树、右子树这三部分构成。树的遍历是访问树中每个结点仅一次的过程。可将遍历看作是把所有的结点放在一条线上(即对树进行线性化的处理)。 2.二叉树的遍历先序遍历: DLR 中序遍历:LDR 后序遍历:LRD 层序遍历:一层一层从左向右依次输出 3.实现代码:...原创 2018-11-21 00:08:28 · 7125 阅读 · 2 评论 -
约瑟夫环
【问题描述】编号为 1,2,...,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随 机数 m>0,从编号为 1 的人开始,按顺时针方向 1 开始顺序报数,报到 m 时停止。报 m 的人出圈, 同时留下他的密码作为新的 m 值,从他在顺时针方向上的下一个人开始,重新从 1 开始报数,如此下 去,直至所有的人全部出列为止。【基本要求】 利用单向循环链...原创 2018-11-02 18:46:15 · 221 阅读 · 0 评论 -
用数据结构(c语言)实现进制转换
运用栈这种数据结构,简单的实现进制转换,代码如下:/*进制转换问题*/ #include<stdio.h>#include<stdlib.h>#define stack_init_size 100#define stackincrement 10#define error 1#define true 1#define false 0#define o...原创 2018-10-31 01:13:35 · 3089 阅读 · 1 评论 -
数据结构 括号匹配
三种括号形式( ),[ ],{ },输入一段字符串,判断其括号是否匹配。代码如下:/*括号匹配问题*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define stack_init_size 100#define stackincrement 10#define error ...原创 2018-10-31 01:10:28 · 1364 阅读 · 0 评论 -
哈夫曼树(HuffmanTree)详解
目录1.哈夫曼算法2.举例说明,感性认识哈夫曼算法,根据上面的4步得出下表3.结点结构体类型的定义4.select函数的编写 5.哈夫曼树的创建及编码的创建6.解码7. 打印哈夫曼树和哈夫曼编码8.完整代码9.运行截图1.哈夫曼算法1.根据给定的n个权值{w1,w2,...,wn}构造n棵二叉树的集合F={T1,T2,...,Tn},其中每棵二叉树Ti...原创 2018-11-22 22:16:20 · 12129 阅读 · 3 评论