
数据结构/C语言
BLADCS
在这里写一写笔记和心情也是很好的
展开
-
锦标赛-c语言
链接:https://ac.nowcoder.com/acm/problem/13223来源:牛客网**题目描述 **组委会正在为美团点评CodeM大赛的决赛设计新赛制。比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛、复赛的成绩,会有不同的积分。比赛采取锦标赛赛制,分轮次进行,设某一轮有 m 个人参加,那么参赛者会被分为 m/2 组,每组恰好 2 人,m/2 组的人分别厮杀。我们假定积分高的人肯定获胜,若积分一样,则随机产生获胜者。获胜者获得参加下一轮的资格,输的人被淘汰。重原创 2020-09-16 20:18:29 · 1201 阅读 · 1 评论 -
几种排序的实现与对比/C语言
几种排序的实现与对比/C语言下面是我整理的几种排序。这个是我的学习笔记。1.冒泡排序 2.插入排序 3.选择排序4.快速排序 5.堆排序 6.归并排序7.希尔排序平均效率最好情况最坏情况辅助空间稳定性冒泡排序O(n²)O(n)O(n²)O(1)稳定插入排序O(n²)O(n)O(n²)O(1)稳定选择排序O(n²)O(n²)...原创 2020-07-23 14:40:37 · 262 阅读 · 0 评论 -
数据结构/C语言版
一,基本概念数据结构:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。算法(Algorithm):是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能原创 2020-06-22 11:59:07 · 648 阅读 · 0 评论 -
数组A[10][15]的每个元素都是占4个字节的数据,将其按列优先次序存储
这个还是要记一下的数组A[10][15]的每个元素都是占4个字节的数据,将其按列优先次序存储,若A[0][0]存储地址在起始地址为1000的内存单元中,则元素A[6][9]的地址是?答案1384loc=1000+4*[10*(9)+(6)]=1384这个是有公式的:A[n][ ],求元素A[i][j]?loc=loc₀+d*[n*(j)+(i)]loc₀是起始地址,d:每个元素所占字节数n是数组列数j,i是所求元素下标在拿一个网上的栗子设有二维数组A[1…12,1…10],其每个元素原创 2020-05-23 14:35:31 · 8377 阅读 · 7 评论 -
哈夫曼树/最优二叉树(WPL)(C语言实现)
哈夫曼树/最优二叉树(C语言实现)带长路径长度(WPL):设二叉树有n个叶子结点,每个叶子结点带有权值Wκ,从根结点到每个叶子结点的长度为lκ,则每个叶子结点的带权路径长度之和就是WPL=∑Wκ•lκ(n,i=1)。哈夫曼树/最优二叉树:WPL最小二叉树。举个栗子(WPL)它的WPL=∑Wκ•lκ(n,i=1)=11+22+33+44+5*4=50哈夫曼树就是要找WPL最小的树。哈夫...原创 2020-05-02 15:09:46 · 6016 阅读 · 0 评论 -
二叉搜索树和平衡二叉树
二叉搜索树二叉搜索树也称二叉排序树或二叉查找树储存模式:1,非空左子树的所有键值小于根结点键值2,非空右子树的所有键值大于根节点键值3,左右子树都是二叉搜索树查找元素:循环实现:position find (elementtype x,binTree bts){ while(bts){ if(x > bts->data) bts=bts->right; ...原创 2020-05-02 14:19:06 · 490 阅读 · 0 评论 -
7-19 修理牧场 (25分)(C语言实现)
7-19 修理牧场 (25分)(C语言实现)农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li 个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木...原创 2020-04-26 12:53:27 · 1404 阅读 · 0 评论 -
7-22 搜索树判断 (25分)(C语言实现)
7-22 搜索树判断 (25分)(C语言实现)对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。输入格式:输入的第一行包含一个...原创 2020-04-13 23:28:07 · 1852 阅读 · 0 评论 -
03-树1 树的同构 (25分)(C语言实现)
03-树1 树的同构 (25分)(C语言实现)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N ...原创 2020-04-10 14:28:08 · 815 阅读 · 0 评论 -
堆(heap)(c语言)
堆(heap)这个堆不是堆栈。堆是用完全二叉树储存。堆是解决不是按照(时间或是说输入顺序)来进行排队,而是以优先的级别来排序。这就是优先队列了。堆的特性结构性:堆使用完全二叉树来存储,所以具备了完全二叉树的性质。所有子树的根结点比左右结点大。有序性:任一结点的关键字是其子树所有结点的最大值(或最小值)最大堆(MaxHeap):最大值最小堆(MinHeap):最小值优先队列优...原创 2020-04-09 13:22:16 · 722 阅读 · 0 评论 -
7-16 列出叶结点 (25分)/(C语言实现)
7-16 列出叶结点 (25分)/(C语言实现)对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。输入格式:首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 “-”。编号间以 1 个空格分隔。输出格式:在一行中按规定顺序输出叶节点的编号。...原创 2020-04-08 17:43:20 · 6087 阅读 · 0 评论 -
7-13 根据后序和中序遍历输出先序遍历 (25分)/C语言实现
7-13 根据后序和中序遍历输出先序遍历 (25分)本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有...原创 2020-04-06 18:36:37 · 2059 阅读 · 1 评论 -
6-1 有序数组的插入 (20分)(c语言实现)
6-1 有序数组的插入 (20分)这个我居然试了半天~。。本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序。函数接口定义:bool Insert( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode List;struct LNode {Ele...原创 2020-04-04 13:17:57 · 12889 阅读 · 2 评论 -
数列求和-加强版 (20分)(C语言实现)
数列求和-加强版 (20分)哈哈这个题太有意思了~~给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。输入样例:1 3输出样例:123c语言实现代码#include<stdi...原创 2020-03-27 23:24:58 · 3659 阅读 · 7 评论 -
二叉树的遍历
二叉树的种历遍先序遍历遍历过程:1,先访问根节点2,先序遍历左子树2,先序遍历右子树递归实现://先序遍历void preOrderTraversal(binTree bt){ if(NULL != bt){//空时结束 printf("%d ",bt->data); preOrderTraversal(bt->left);//左子树递归 preOrder...原创 2020-03-26 12:38:23 · 224 阅读 · 0 评论 -
02-线性结构1 两个有序链表序列的合并(pta/C语言实现)
02-线性结构1 两个有序链表序列的合并 (15分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 /PtrTo...原创 2020-03-18 22:20:03 · 433 阅读 · 0 评论 -
7-2 中缀表达式转换为后缀表达式(C语言实现)
7-2 中缀表达式转换为后缀表达式(pta/C语言)所谓中缀表达式,指的是运算符处于操作数的中间(例:3 * ( 4 + 2 )),中缀表达式是人们常用的算术表示方法,但中缀表达式不容易被计算机解析,因为既要考虑运算符的优先级,还要考虑括号的处理。但中缀表达式仍被许多程序语言使用,因为它符合人们的普遍用法。后缀表达式,指的是不包含括号,运算符放在两个操作数的后面,所有的计算按运算符出现的顺序,严...原创 2020-03-17 22:36:28 · 6392 阅读 · 9 评论 -
7-3 银行排队问题之单队列多窗口服务
7-3 银行排队问题之单队列多窗口服务假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。输入格式:输入第1行给出正整数N(≤1000),为顾客总...原创 2020-03-16 10:06:18 · 1672 阅读 · 2 评论