数据结构实验之链表一:顺序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N:第二行依次输入每个整数. Output 输出这组整数. Sample Input 8 12 56 4 6 55 15 33 62 Sample Output 12 56…
数据结构实验之链表一:顺序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N: 第二行依次输入每个整数. Output 输出这组整数. Sample Input 8 12 56 4 6 55 15 33 62 Sample Output 12 56 4 6 55 15 33 62 Hint 不得…
Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N: 第二行依次输入每个整数. Output 输出这组整数. Sample Input 8 12 56 4 6 55 15 33 62 Sample Output 12 56 4 6 55 15 33 62 Hint 不得使用数组! #include <bits/stdc++.h> using namespace std; struct no…
Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N:第二行依次输入每个整数. Output 输出这组整数. Sample Input 8 12 56 4 6 55 15 33 62 Sample Output 12 56 4 6 55 15 33 62 Hint 不得使用数组!       详细链表解释参见另一篇随笔.     代码如下: #include<iostream> #inclu…
太简单了,直接贴题目然后上代码. 题目: 实验2 2.1 实验目的 熟练掌握线性表的链式存储结构. 熟练掌握单链表的有关算法设计. 根据具体问题的需要,设计出合理的表示数据的链式存储结构,并设计相关算法. 2.2 实验要求 本次实验中的链表结构指带头结点的单链表: 单链表结构和运算定义,算法的实现以库文件方式实现,不得在测试主程序中直接实现: 比如存储.算法实现放入文件:linkedList.h 实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求: 程序有适当的注释. 2.3 实…
Problem Description 转置运算是一种最简单的矩阵运算,对于一个m*n的矩阵M( 1 = < m < = 10000,1 = < n < = 10000 ),它的转置矩阵T是一个n*m的矩阵,且T( i , j )=M( j , i ).显然,一个稀疏矩阵的转置仍然是稀疏矩阵.你的任务是对给定一个m*n的稀疏矩阵( m , n < = 10000 ),求该矩阵的转置矩阵并输出.矩阵M和转置后的矩阵T如下图示例所示.       稀疏矩阵M          …
Problem Description 对于一个n*n的稀疏矩阵M(1 <= n <= 1000),采用三元组顺序表存储表示,查找从键盘输入的某个非零数据是否在稀疏矩阵中,如果存在则输出OK,不存在则输出ERROR.稀疏矩阵示例图如下: Input 连续输入多组数据,每组数据的第一行是三个整数mu, nu, tu(tu<=50),分别表示稀疏矩阵的行数.列数和矩阵中非零元素的个数,数据之间用空格间隔,随后tu行输入稀疏矩阵的非零元素所在的行.列值和非零元素的值,每组数据的最后一行输入要查…
其实,感觉好像增量不同的冒泡,希尔排序概念以后补上. #include <bits/stdc++.h> using namespace std; int a[10005]; int b[10005]; void shsort(int dk, int n, int a[]) { for(int i = dk; i < n; i ++) { for(int j = i - dk; j >= 0; j -= dk) { if(a[j] > a[j + dk]) { int t =…
桶排序: #include <stdio.h> #include <string.h> int a[5555555]; int main() { int n,m; scanf("%d",&n); memset(a,0,sizeof(a)); for(int i = 0; i < n; i ++) { scanf("%d",&m) ; if(m >= 100) a[100]++; else a[m]++; } for…
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树. #include <stdio.h> #include <string.h> #include <stdlib.h> struct node{ int data; struct node *l, *r; }; struct node *creat(struct node *root,int x) { if(root == NULL) // 如果 ro…
#include<bits/stdc++.h> using namespace std; typedef long long ll; struct node { int s, e; int w; }s[100005]; int c[105]; bool cmp(struct node a, struct node b) { return a.w < b.w; } int fin(int x) { int r = x; while(r != c[r]) r = c[r]; int i =…
#include <bits/stdc++.h> using namespace std; struct Tree { char data; struct Tree *right; struct Tree *left; }; char str[55]; int num; struct Tree *creat() { struct Tree * root; if(str[num ++] == ',') { root = NULL; } else { root = (struct Tree *)m…
Problem Description 在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来. 能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学.欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理.对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路.人们又通常把一笔画成回到出发点的欧拉路叫做欧拉回路.具有欧拉回路的图叫做欧拉图. 你的任务是:对于给定的…
数据结构实验之链表二:逆序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据. Input 第一行输入整数N;:第二行依次输入N个整数,逆序建立单链表. Output 依次输出单链表所存放的数据. Sample Input 10 11 3 5 27 9 12 43…
数据结构实验之链表二:逆序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据. Input 第一行输入整数N;: 第二行依次输入N个整数,逆序建立单链表. Output 依次输出单链表所存放的数据. Sample Input 10 11 3 5 27 9 12 43 16 84 22 Sample Output 2…
数据结构实验之链表六:有序链表的建立 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表. Input 第一行输入整数个数N:第二行输入N个无序的整数. Output 依次输出有序链表的结点值. Sample Input 6 33 6 22 9 44 5 Sample Output 5…
数据结构实验之链表六:有序链表的建立 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表. Input 第一行输入整数个数N: 第二行输入N个无序的整数. Output 依次输出有序链表的结点值. Sample Input 6 33 6 22 9 44 5 Sample Output 5 6 9 22 33 44 Hint 不得使用数组…
数据结构实验之链表九:双向链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链.但单链表有一个弱点——不能回指.比如在链表中有两个节点A,B,他们的关系是B是A的后继,A指向了B,便能轻易经A找到B,但从B却不能找到A.一个简单的想法便能轻易解决这个问…
数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个). Input 第一行输入元素个数 n (1 <= n <= 15):第二行输入 n 个整数,保证在 int 范围内. Output 第一行输出初始链表元素个数:第…
数据结构实验之链表五:单链表的拆分 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表一致. Input 第一行输入整数N;:第二行依次输入N个整数. Output 第一行分别输出偶数链表与奇数链表的元素个数: 第二行…
数据结构实验之链表三:链表的逆置 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据. Input 输入多个整数,以-1作为结束标志. Output 输出逆置后的单链表数据. Sample Input 12 56 4 6 55 15 33 62 -1 S…
数据结构实验之链表五:单链表的拆分 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表一致. Input 第一行输入整数N;: 第二行依次输入N个整数. Output 第一行分别输出偶数链表与奇数链表的元素个数: 第二行依次输出偶数子链表的所有数据: 第三行依次输出奇…
数据结构实验之链表三:链表的逆置 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据. Input 输入多个整数,以-1作为结束标志. Output 输出逆置后的单链表数据. Sample Input 12 56 4 6 55 15 33 62 -1 Sample Output 62 33 15 55…
数据结构实验之链表九:双向链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链.但单链表有一个弱点--不能回指.比如在链表中有两个节点A,B,他们的关系是B是A的后继,A指向了B,便能轻易经A找到B,但从B却不能找到A.一个简单的想法便能轻易解决这个问题--建立双向链表.在双向链表中,A有一个指针指向…
数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个). Input 第一行输入元素个数 n (1 <= n <= 15): 第二行输入 n 个整数,保证在 int 范围内. Output 第一行输出初始链表元素个数: 第二行输出按照逆位序所建立的初始链表: 第三行输…
线性表 线性表是最简单.最基本.最常用的数据结构.数据元素 1 对 1的关系,这种关系是位置关系. 特点 (1)第一个元素和最后一个元素前后是没有数据元素,线性表中剩下的元素是近邻的,前后都有元素. (2)线性表中的元素是有限的(List),线性表中的数据类型一致. (3)线性表表示方法 L={a1,a2,a3,a4…….an},L=(D,R) (4)每一个元素都有前驱和后继,第一个元素只有后继,最后一个元素只有前驱. 实例 例如:1-100的整数是一个线性表 {“zhangsan”, “lis…
数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 分别输入两个有序的整数序列(分别包含M和N个数据),建立两个有序的单链表,将这两个有序单链表合并成为一个大的有序单链表,并依次输出合并后的单链表数据. Input 第一行输入M与N的值: 第二行依次输入M个有序的整数:第三行依次输入N个有序的整数. Output 输出合并后的单链表所…
数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 分别输入两个有序的整数序列(分别包含M和N个数据),建立两个有序的单链表,将这两个有序单链表合并成为一个大的有序单链表,并依次输出合并后的单链表数据. Input 第一行输入M与N的值: 第二行依次输入M个有序的整数: 第三行依次输入N个有序的整数. Output 输出合并后的单链表所包含的M+N个有序的整数. Sample Inp…
遵从所有教材以及各类数据结构相关的书书籍,我们先从线性表开始入门.今天这篇文章更偏概念,是关于有线性表的一个知识点的汇总. 上文说过,物理结构是用于确定数据以何种方式存储的.其他的数据结构(树.图).算法等基本都是建立在这样一个物理结构之上的,也可以说,物理结构就是数据结构的根本.在这里,我们先介绍两个物理结构,也是我们将来学习数据结构的基石,它们就是顺序表和链表. 顺序表 不扯复杂的定义,不扯什么数学表达式,我们最直观的理解,顺序表就是数组. 是不是非常简单,没错,在 PHP 或者 C 的世界…
数据结构实验之链表八:Farey序列 Time Limit: 10 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Description Farey序列是一个这样的序列:其第一级序列定义为(0/1,1/1),这一序列扩展到第二级形成序列(0/1,1/2,1/1),扩展到第三极形成序列(0/1,1/3,1/2,2/3,1/1),扩展到第四级则形成序列(0/1,1/4,1/3,1/2,2/3,3/4,1/1).以后在每一级n,如果…