自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 批量打开超链接

1

2022-10-02 14:47:36 736 1

原创 11-散列4 Hashing - Hard Version

输入样例:1133 1 13 12 34 38 27 22 32 -1 21输出样例:1 13 12 21 33 34 38 27 22 32题意:根据hash得到的结果,得出输入序列/*每个值本来应该在hash得到的下标,但因为存在冲突,所以有的会有hash值有距离这个距离可能是hash一样的占了,也可能是hash不一样的但在前面输入的占了导致后移*/#include<stdio.h>struct node{ int in; //入度,记录与本来应该的.

2020-12-11 02:19:33 309

原创 11-散列2 Hashing

输入样例:4 410 6 4 15输出样例:0 1 4 -平方探测只需要判断到size,假设散列表大小为Size,那么当增量大于等于Size平方的时候就是在重复之前1平方,2平方…到(size-1)平方的事情。只要把Size平方,(Size+1)平方因式分解一下,就会发现对求余有影响的就是Size加的部分,后面就是一直重复了。size方和2size没了,就只有1#include<stdio.h>#include<math.h>int Getnextprime(int.

2020-12-11 01:53:26 124

原创 11-散列1 电话聊天狂人

输入样例:413005711862 1358862583213505711862 1308862583213588625832 1808792583215005713862 13588625832输出样例:13588625832 3直接hash就行,基础操作#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#define MAX 10000#d.

2020-12-11 01:29:32 131

原创 10-排序6 Sort with Swap(0, i)

输入样例:103 5 7 2 6 4 9 0 8 1输出样例:9/*0-N的数字可以在数组【下标也是0-N】中形成若干个环 和用0交换没有关系【只是因为0最小,如果数据只有5当然不能用6交换】0是否在环里没关系 环里元素经过N次交换,相当于每次都与0进行交换,下次再将0的值交换给该去的位置 出环的时候需要多记一次【或者当成第一次无效交换多记一次】每次在一个环里的元素个数就是交换次数,出环要加一。每个环结束后再找新环*/#include<stdio.h>int a[.

2020-12-11 00:47:32 103

原创 09-排序3 Insertion or Heap Sort

输入一个原始序列,一个排序后的序列,确定其是插入排序还是堆排序此题是取出最大值后再下滤的结果输入样例:103 1 2 8 7 5 9 4 6 06 4 5 1 0 3 2 7 8 9输出样例:Heap Sort5 4 3 1 0 2 6 7 8 9#include<stdio.h>#include<stdlib.h>#define MAX 101int b[MAX];void swap(int*a,int*b){ int temp; tem

2020-12-11 00:17:35 98

原创 09-排序2 Insert or Merge

输入一段原始序列,输入一段排序后的序列,判断是插入排序还是归并排序得到的,并再进行一次该排序输入:103 1 2 8 7 5 9 4 6 01 2 3 7 8 5 9 4 6 0输出:Insertion Sort1 2 3 5 7 8 9 4 6 0将两个排序写出来,归并用非递归类型,每次执行一次就判断,如果满足就输出。#include<stdio.h>#include<stdlib.h>#define MAX 101int b[MAX];int match

2020-12-11 00:10:00 299

原创 08-图8 How Long Does It Take

输入样例:9 120 1 60 2 40 3 51 4 12 4 13 5 25 4 04 6 94 7 75 7 46 8 27 8 4输出样例:18就是直接的拓扑排序#include<stdio.h>#include<stdlib.h>#define MAX 101#define INF 65536//邻接表存储typedef struct sonnode{ int num; int weight; struc.

2020-12-10 00:59:29 102

原创 08-图7 公路村村通

输入样例:6 151 2 51 3 31 4 71 5 41 6 22 3 42 4 62 5 22 6 63 4 63 5 13 6 14 5 104 6 85 6 3输出样例:12#include<stdio.h>#include<stdlib.h>#define MAX 1002#define INF 65536typedef struct Gnode{ int G[MAX][MAX]; int size;}*M.

2020-12-09 21:06:01 146

原创 06-图3 六度空间

找出距离起点6跳以内的结点个数输入样例10 91 22 33 44 55 66 77 88 99 10输出样例:1: 70.00%2: 80.00%3: 90.00%4: 100.00%5: 100.00%6: 100.00%7: 100.00%8: 90.00%9: 80.00%10: 70.00%#include<stdio.h>#define MAX 1002int G[MAX][MAX];int visit[MAX];void bui

2020-12-09 14:45:57 94

原创 05-树9 Huffman Codes

In 1953, David A. Huffman published his paper “A Method for the Construction of Minimum-Redundancy Codes”, and hence printed his name in the history of computer science. As a professor who gives the final exam problem on Huffman codes, I am encountering a

2020-12-09 01:08:18 108

原创 05-树8 File Transfer

We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer on the network to any other?I c1 c2where I stands for

2020-12-09 00:07:46 71

原创 04-树6 Complete Binary Search Tree

输入一个序列如:101 2 3 4 5 6 7 8 9 0构造成一个完全二叉搜索树,输出其层序遍历6 3 8 1 5 7 9 0 2 4//中序遍历就是排序的结果//每次可以计算根节点的位置,得到前序遍历#include<stdio.h>#include<math.h>#include<stdlib.h>struct TreeNode{ struct TreeNode*left; struct TreeNode*right;

2020-12-08 23:47:51 65

原创 04-树4 是否同一棵二叉搜索树

给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插入的元素,属于L个需要检查

2020-12-08 12:27:57 78

原创 03-树3 Tree Traversals Again

给出输入序列,得到后序遍历的输出结果输入6 //总个数Push 1Push 2Push 3PopPopPush 4PopPopPush 5Push 6PopPop输出:3 4 2 6 5 1根据push 和pop可以构造树,也可以直接确定前序遍历和中序遍历的结果,就是已知这两个遍历得到后序遍历的结果pop一次说明其没有左子树了,从中序遍历就可以进入了 再pop一次说明其无子树,则其父节点将成为下一个中序遍历的值#include<stdio.h>#in

2020-12-07 19:27:29 81

原创 03-树1 树的同构

给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。输入:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个英文大写字母、其左孩子结点的编号、右孩子结点的编号。如果孩子结点为空,则在相应位置上给出“-

2020-12-07 15:36:06 110

原创 02-线性结构2 一元多项式的乘法与加法运算

输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0input sample:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1output sample:15 24 -25 22 30 21 -10 20 -21 8 35 6 -3

2020-12-05 17:36:53 71

原创 02-线性结构4 Pop Sequence

Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is 5 and N is 7, we can obtain

2020-12-05 17:31:30 106

原创 02-线性结构3 Reversing Linked List

题意:输入 首地址 输入个数n K依此输入n个结点地址 值 后继地址每k个进行反转比如1-2-3-4-5-6 k=4反转后为4-3-2-1-5-6输入样例:00100 6 400000 4 9999900100 1 1230968237 6 -133218 3 0000099999 5 6823712309 2 33218输出反转后的结果输出样例:00000 4 3321833218 3 1230912309 2 0010000100 1 99999999

2020-12-05 17:03:43 56

原创 利用栈实现四则混合运算(C语言,只能实现整数,测试不完全,可能有bug)

原理:平时我们输入的是中缀表达式 比如(1+3)*5/(6+2)1.中缀表达式转为后缀表达式(后缀表达式不用括号) 如:1 3 + 5 * 6 2 + /流程:从头到尾读取,读到数字,输出读到左括号,入栈读到右括号,不断输出栈顶元素,直到左括号(左括号不输出但要出栈)读到运算符,优先级大于栈顶,入栈小于等于栈顶,栈顶元素出栈,然后新的栈顶不断与输入的比较。直到栈顶优先级小于输入的优先级。最新输入的仍然入栈处理结束后,将栈内全部输出2.后缀表达式计算结果不断读数,如果遇到数字就入栈

2020-12-03 23:25:38 867

原创 11-散列4 Hashing - Hard Version

给定一个hash排列 给出输入的顺序 如果多种则选择数字尽可能小的输在前面散列函数:求余大于N的最小的质数为散列的除数输入样例:1133 1 13 12 34 38 27 22 32 -1 21输出样例:1 13 12 21 33 34 38 27 22 32#include<stdio.h>struct node{ int in; //入度,记录与本来应该的位置差多远,相关地方走一个之后-1,为0即可输出 int root; //根

2020-12-01 21:58:38 82

原创 01-复杂度2 Maximum Subsequence Sum

最大子列和加上求开始点和结束点的值如果全是负数则输出0 首尾数值#include<stdio.h>void findmaxsub(int num[],int len){ int i=0,maxsum=0,sum=0,left=0,right=len-1,templeft=0,flag=0; for(i=0;i<len;i++) { if(num[i]==0&&flag==0) flag++; //

2020-11-30 00:44:58 59

原创 01-复杂度1 最大子列和问题

给定K个整数组成的序列,“最大子列和”被定义为所有连续子列元素的和中最大者.求最大子列和输入第1行给出正整数K (≤100000);第2行给出K个整数,其间以空格分隔。输入样例:6-2 11 -4 13 -5 -2输出样例:20#include<stdio.h>int findmaxsub(int num[],int len){ int i=0,maxsum=0,sum=0; for(i=0;i<len;i++) { sum+=nu

2020-11-30 00:28:19 97

原创 浙大数据结构 PTA 02-线性结构4 Pop Sequence

由于是顺序入栈,故出栈时如果前面的数字大于后面的则表明该数在栈中存放了一段时间。用一个stack数组记录该数字是否出栈。当给定的出栈序列的一个数比后面一个小的时侯,则表明此时它正常出栈,用stack记录。而如果它更大,则继续后面的并且计数。同时每次判断其与后面更小的数之间的数是否出栈。如果未出栈则错误。同时记录总长度是否超过栈长。#include<stdio.h>int stack[1001]; //0表示未出栈 1表示已经出栈int judge(int m,int n){

2020-11-19 20:16:02 424

原创 排序学习记录

#include<stdio.h>#include<stdlib.h>int cmp(const void *a,const void *b){ return *(int*)a-*(int*)b;}void swap(int*a,int*b){ int temp; temp=*a; *a=*b; *b=temp;}//冒泡排序void bubble_sort(int a[],int n){ int i,j,flag;

2020-11-19 20:09:01 84

原创 08-图9 关键活动 (30分)

@08-图9 关键活动 (30分)TOC写的很烂,自己复习的,不要参考#include<stdio.h>#include<stdlib.h>#define MAX 101#define INF 65536//用邻接矩阵存储 行代表发出的 列代表终点typedef struct Gnode{ int G[MAX][MAX]; int sort[MAX][MAX]; int nv; //顶点数 int ne; //边数}*Gp;

2020-11-16 14:46:01 99

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除