数据结构
小丞啊
我是不会秃头的!!
展开
-
递增的整数序列链表的插入
本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。其中结构定义如下:是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数要将插入,并保持该序列的有序性,返回插入后的链表头指针。输出样例:方法一:一边进行找一边进行判断以及进行插入,同步进行注意:①一定要先判断链表原本是不是空的②要先判断是不是到尾部方法二:先找到位置在进行插入...原创 2022-06-22 10:20:27 · 1464 阅读 · 0 评论 -
6-2 用C语言实现另类堆栈
6-2 另类堆栈在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?其中结构定义如下:注意:如果堆栈已满,函数必须输出“Stack Full”并且返回false;如果队列是空的,则函数必须输出“Stack Empty”,并且返回ERROR。输入样例:输出样例:代码长度限制16 KB时间限制400 ms内存限制64 MB...原创 2022-06-20 16:18:54 · 352 阅读 · 0 评论 -
用深度遍历查找两点之间的最小路径算法
因为这是两点之间的最小路径问题(即单源最短路径问题)所以用深度或广度遍历进行查找较方便。采用深度遍历查找(代码+解析)如下:结合代码进行解析和结合图进行理解较容易。#include <stdio.h>#include <stdlib.h>#define MAX 100//not_c 表示的是没有关系的值 #define not_c 10000 //图的结构 struct Chart{ int bian_sum; int spot_sum; in...原创 2022-05-08 15:57:30 · 387 阅读 · 0 评论 -
6-3 求组合数(高效递归版) (10 分)
6-3 求组合数(高效递归版) (10 分)请编写高效递归函数,求组合数。函数原型double Cmb(int x, int y);说明:x 和 y 为非负整数,且 x ≥ y ≥ 0,函数值为组合数Cxy。要求:不要使用循环语句,不调用阶乘函数和排列数函数。找出最快的递推公式,该函数直接调用自己求得结果。裁判程序#include <stdio.h>double Cmb(int x, int y);int main(){ int m,.原创 2021-12-10 20:30:26 · 7339 阅读 · 1 评论 -
你不知道的C语言的“冷知识”
1.生成在0~y之间的数(周期数)+2.如何知道某十进制的16进制为多少+3.用字符指针数组输入时的问题(未开辟空间)一.生成在0~y之间的数(周期数):1.解析:当你想要将数a转为在0~b(取不到b)之间的数时:y=a%b-->y无论是什么数都会转为在0~b(取不到b)之间的数。如以下的例子:我想将数转为在0~15之间的数(可以用来进行16进制的转换)代码如下:#include <stdio.h>int main(){ for(int i=0;i<原创 2022-01-06 15:39:42 · 2768 阅读 · 0 评论 -
树的层次遍历也建立和先序遍历与建立
层次遍历建立树和层次遍历输出树/*利用顺序队列,层次建立二叉树*/ #include <stdio.h>#define MAXSIZE 100 struct tnode //树的数据结构{ char data; tnode *lchild, *rchild;}; struct queue //队列的数据结构{ tnode *data[MAXSIZE];//存放树的结点的数组 int front, rear;}; void creat(queue .原创 2022-04-04 15:25:03 · 889 阅读 · 0 评论 -
二叉搜索树的操作集 (40 分)
6-2 二叉搜索树的操作集 (40 分)本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST );Position FindMax( BinTree B原创 2022-04-09 14:31:26 · 469 阅读 · 0 评论 -
7-1 拯救007(基于图的遍历考点)
在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!(据说当年替身演员被最后一条鳄鱼咬住了脚,幸好穿的是特别加厚的靴子才逃过一劫。)设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0, 0) 为圆心、直径15米的圆。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。原创 2022-05-02 14:25:35 · 4072 阅读 · 0 评论 -
哈利·波特的考试,涉及最小的路径问题(算法floyd)
哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出了所有的变形魔咒和能变的动物。老师允许他自己带一只动物去考场,要考察他把这只动物变成任意一只指定动物的本事。于是他来原创 2022-05-02 14:24:29 · 456 阅读 · 0 评论 -
6-1 邻接表存储图的广度优先遍历
6-1 邻接表存储图的广度优先遍历分数20全屏浏览题目切换布局作者DS课程组单位浙江大学试实现邻接表存储图的广度优先遍历。函数接口定义:void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是邻接表存储的图,定义如下:/* 邻接点的定义 */typedef struct AdjVNode *PtrToAdjVNode; struct AdjVNode{ ...原创 2022-04-30 03:45:00 · 2164 阅读 · 0 评论 -
7-1 是否同一棵二叉搜索树 (34 分)
7-1 是否同一棵二叉搜索树 (34 分)给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。.原创 2022-04-18 14:42:36 · 528 阅读 · 0 评论