c语言数据结构基础题目
Starryヾ皮皮星ヾ
弱小的程序猿才习惯妥协和否定,内心强大的程序猿从不承认自己代码的错误。
展开
-
c语言链表的合并题
【问题描述】两个非降序链表的并集,例如将链表1->2->3 和 2->3->5 并为 1->2->3->5,只能输出结果,不能修改两个链表的数据。【输入形式】第一行首先是数据的个数,然后是第一个链表的各结点值,以空格分隔。第二行首先也是数据的个数,然后是第二个链表的各结点值,以空格分隔。【输出形式】合并好的链表,以非降序排列,值与值...原创 2019-03-26 20:24:09 · 1047 阅读 · 0 评论 -
数据结构最短路径问题
【问题描述】在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。可将迪杰斯特拉算法描述如下:在本题中,读入一个有向图的带权邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法求出源点至每一个其它顶点的最短路...原创 2019-05-27 09:53:35 · 3733 阅读 · 0 评论 -
图的遍历及连通性
【问题描述】根据输入的图的邻接矩阵A,判断此图的连通分量的个数。【输入形式】第一行为图的结点个数n,之后的n行为邻接矩阵的内容,每行n个数表示。其中A[i][j]=1表示两个结点邻接,而A[i][j]=0表示两个结点无邻接关系。【输出形式】输出此图连通分量的个数。【样例输入】50 1 1 0 01 0 1 0 01 1 0 0 00 0 0 0 10 0 ...原创 2019-05-11 15:54:51 · 4393 阅读 · 0 评论 -
有向无环图的拓扑排序
【问题描述】由某个集合上的一个偏序得到该集合上的一个全序,这个操作被称为拓扑排序。偏序和全序的定义分别如下:若集合X上的关系R是自反的、反对称的和传递的,则称R是集合X上的偏序关系。设R是集合X上的偏序,如果对每个x,y∈X必有xRy或yRx,则称R是集合X上的全序关系。由偏序定义得到拓扑有序的操作便是拓扑排序。拓扑排序的流程如下:1. 在有向图中选一个没有前驱的顶点并且输出之;2...原创 2019-05-15 17:06:11 · 844 阅读 · 1 评论 -
大整数相乘
【问题描述】输出两个不超过100位的大整数的乘积。要求用本章的块链串知识实现两个大整数的相乘。比如每一个结点存储5位,12345678983426801则需要4个结点;先实现大整数乘上一个一位数;再实现两个大数相加。用这样的链式存储形式便于计算:12--->34567--->89834--->26801或者:26801--->89834--->3456...原创 2019-05-01 10:35:03 · 538 阅读 · 0 评论 -
稀疏矩阵快速转置
【问题描述】稀疏矩阵的存储不宜用二维数组存储每个元素,那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成。而矩阵转置就是将矩阵行和列上的元素对换。请你实现一个快速的对稀疏矩阵进行转置的算法。【输入形式】输入的第一...原创 2019-04-29 15:10:47 · 685 阅读 · 0 评论 -
二叉树的操作(交换左右子树)
【问题描述】二叉树按照二叉链表的方式存储。编写程序,计算二叉树中叶子结点的数目并输出;编写程序,将二叉树的左右子树进行交换,并输出交换后的二叉树的后序遍历序列。【输入形式】二叉树的前序遍历序列,空指针的位置输入字符#【输出形式】叶子结点的数目左右子树交换后,后序遍历的序列,空子树的位置输出字符#【样例输入】ABE##F##CG###【样例输出】3###GC##F...原创 2019-04-29 15:09:18 · 7191 阅读 · 0 评论 -
二叉树结点的共同祖先问题
【问题描述】假设二叉树采用二叉链表方式存储,root指向根结点,p所指结点和q所指结点为二叉树中的两个不同结点,且互不成为根到该结点的路径上的点,编程求解距离它们最近的共同祖先。【输入形式】二叉树的前序和中序遍历序列,用以创建该二叉树的链式存储结构;以及二叉树的两个结点数据 x 和 y【输出形式】结点数据值为 x 和结点数据值为 y 的最近的共同祖先,若没有共同祖先则输出NULL...原创 2019-04-29 15:07:55 · 2843 阅读 · 0 评论 -
哈夫曼编码
【问题描述】读入n个字符所对应的权值,自底向上构造一棵哈夫曼树,自顶向下生成每一个字符对应的哈夫曼编码,并依次输出。【输入形式】输入的第一行包含一个正整数n,表示共有n个字符需要编码。其中n不超过100。第二行中有n个用空格隔开的正整数,分别表示n个字符的权值。【输出形式】共n行,每行一个字符串,表示对应字符的赫夫曼编码。【注意】保证每次左子树比右子树的权值小;如出现相...原创 2019-04-29 15:06:45 · 1650 阅读 · 0 评论 -
数据结构迷宫问题
【问题描述】有一个 10 x 10 的迷宫,起点是‘S’,终点是‘E’,墙是‘#’,道路是空格。一个机器人从起点走到终点。当机器人走到一个通道块,前面已经没有路可走时,它会转向到当前面向的右手方向继续走。如果机器人能够过,则留下足迹‘*’,如果走不通,则留下标记‘!’。下面给出算法,请你模拟机器人的走法输出最终的状态。【输入形式】一个 10 x 10 的二维字符数组。【输出形式】...原创 2019-04-04 22:12:19 · 815 阅读 · 1 评论 -
c语言数据结构判断字符串镜像题
【问题描述】本题务必使用顺序栈或者链式栈实现。试写一个算法,识别依次读入的一个以“@”为结束符的字符序列是否为形如 “序列1&序列2” 模式的字符序列。其中序列1和序列2都不含字符 “&”,且序列2是序列1的逆序列。例如,“ a+b&b+a ”是属该模式的字符序列,而 “1+3&3-1”则不是。【输入形式】以@为结尾的一串字符【输出形式】若符...原创 2019-03-26 20:38:18 · 1656 阅读 · 0 评论 -
c语言数据结构单链表多项式相加题
【问题描述】编写一个程序用单链表存储多项式,并实现两个一元多项式A与B相加的函数。A,B刚开始是无序的,A与B之和按降序排列。例如: 多项式A: 1.2X^0 2.5X^1 3.2X^3 -2.5X^5 多项式B: -1.2X^0 2.5X^1 3.2X^3 2.5X^5 5.4X...原创 2019-03-26 20:35:11 · 2854 阅读 · 0 评论 -
c语言数据结构双向循环链表操作题目
【问题描述】输入n个整数,创建一个双向循环链表进行存储。这些整数从第二个开始,递增有序(设a2<a3<...<an) (ai为第i个整数)。试编写程序,创建双向循环链表,依次将输入的整数存储在该链表的各节点中。然后,将第一个结点删除并插入链表中的适当位置,使整个链表递增有序。【输入形式】先输入整数的个数,再输入整数列。【输出形式】以整数递增的顺序,依次输出双向循环链表各个节点...原创 2019-03-26 20:27:18 · 2799 阅读 · 0 评论 -
二叉排序树
【问题描述】请根据输入的数据创建一棵二叉排序树。然后执行相应操作。1 删除某一值为x的结点2 求指定结点y在二叉排序树中的层数【输入形式】结点数据,以0代表结束输入。待删除的x,待求层数的y【输出形式】删除后的二叉排序树的中序遍历结果y所在的层数【样例输入】29 39 15 25 28 10 11 2 01011【样例输出】2 11 15...原创 2019-05-27 21:19:29 · 689 阅读 · 1 评论