![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构
文章平均质量分 97
算法与数据结构
我是一名好学者
学问勤中得,萤窗万卷书。三冬今足用,谁笑腹空虚?
展开
-
并查集算法分析
并查集算法一、并查集能解决哪类问题前提条件如果A与B有关系,B与C也有关系,那么,A与C就有关系;举例:在下图中,A与B是连通的,B与C也是连通的,那么显然,A与C就是连通的。我们把A,B,C称之为节点。BAC问题描述在下列群节点中,已知一些节点之间的关系情况现在给出任意两个节点x和y,判断x和y是否有关系?这些节点中共有多少个独立的群体?123456789...原创 2020-04-13 14:19:33 · 363 阅读 · 0 评论 -
PTA 算法与数据结构 公路村村通(prim算法实现)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数...原创 2019-11-02 23:09:22 · 456 阅读 · 0 评论 -
PTA 算法与数据结构 图着色问题
图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。输入格式:输入在第一行给出3个整数V(0<V≤500)、E(≥0)和K(0<K≤V),分别是无向图的顶点数、边数、以及颜色数。顶点...原创 2019-11-02 22:56:37 · 524 阅读 · 0 评论 -
PTA 6-2 替换子串* (10 分)
函数原型// 替换子串char* StrStuff(char *dst, int idx, int len, const char *src);说明:dst为指示目的串起始地址的指针,idx为待删除子串的起始位置(下标),len为待删除子串的长度,src为指示待插入源串的起始地址的指针。函数将目的串dst中从下标idx处开始、长度为len的子串替换为源串src...原创 2019-10-08 23:39:00 · 1768 阅读 · 0 评论 -
PTA 插入子串* (10 分)(函数题)
请编写函数,在目的串中插入源串。函数原型// 插入子串char* StrInsert(char *dst, int index, const char *src);说明:dst为指示目的串起始地址的指针,index为插入位置(下标),src为指示源串起始地址的指针。函数在目的串dst下标index处插入源串src,函数值为dst。要求:函数能容错运行。若...原创 2019-10-08 18:14:37 · 2753 阅读 · 1 评论 -
PTA 带头结点的链队列的基本操作(函数题)
6-1 带头结点的链队列的基本操作 (15 分)实现链队列的入队列及出队列操作。函数接口定义:Status QueueInsert(LinkQueue *Q,ElemType e);Status QueueDelete(LinkQueue *Q,ElemType *e);其中 Q 和 e 都是用户传入的参数。 LinkQueue 的类型定义如下:typedef int ...原创 2019-09-23 21:35:46 · 4751 阅读 · 3 评论 -
PTA 重排链表(数组法)
重排链表 给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤105)。结点的地址是5位非负整数,NULL地址用−1表示。接下来有N行,每行格式为:...原创 2019-09-18 18:27:56 · 1107 阅读 · 1 评论 -
C语言单链表的建立和输出(详细分析)
C语言单链表的建立和输出(详细分析)1、头文件#include<stdio.h>#include<stdlib.h>//包含了malloc函数,可以用malloc.h代替C语言中malloc是动态内存分配函数函数原型:void * malloc(unsigned int num_bytes);参数:num_bytes 是无符号整型用于表示分配的字节数。返回...原创 2019-09-18 18:06:27 · 33087 阅读 · 5 评论 -
PTA 一元多项式的乘法与加法运算(数组法)
7-2 一元多项式的乘法与加法运算 (100 分)设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 ...原创 2019-09-14 20:33:47 · 1464 阅读 · 3 评论 -
PTA 两个有序链表序列的合并
7-1 两个有序链表序列的合并 (100 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3...原创 2019-09-11 14:53:11 · 775 阅读 · 0 评论 -
PTA 链表逆置(函数题)
6-1 链表逆置 (16分本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:struct ListNode { int data; struct ListNode *next;};函数接口定义:struct ListNode *reverse( struct ListNode *head );其中head是用户传入的链...原创 2019-09-10 18:27:55 · 5132 阅读 · 1 评论 -
数据结构与算法 第一章 概论(笔记)
第一章 概论1.1 为什么要学习数据结构算法与数据结构在知识体系中的位置算法与数据结构知识体系概括地说:算法与数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表示和实现”的学科。——唐·欧·克努特(美国)1.2 什么是数据结构一、数据与数据结构1、数据:所有能被输入到计算机中,且能被计算机处理的符号(数值、字符等)的集合。是计算机操作的...原创 2019-09-04 19:32:51 · 717 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文) 6-10 二分查找 (20 分)
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position...原创 2019-11-26 17:00:40 · 285 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 (25 分)
本题要求给定二叉树的4种遍历。函数接口定义:void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );void LevelorderTraversal( BinTree BT );其中BinTree结构定义如下:...原创 2019-11-26 16:59:14 · 476 阅读 · 1 评论 -
PTA数据结构与算法题目集(中文) 6-8 求二叉树高度 (20 分)
本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree ...原创 2019-11-26 16:51:23 · 402 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文) 6-7 在一个数组中实现两个堆栈 (20 分)
本题要求在一个数组中实现两个堆栈。函数接口定义:Stack CreateStack( int MaxSize );bool Push( Stack S, ElementType X, int Tag );ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack结构定义如下:typed...原创 2019-11-26 16:40:55 · 493 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文) 6-6 带头结点的链式表操作集 (20 分)
本题要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef...原创 2019-11-26 16:25:47 · 464 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文) 6-5 链式表操作集 (20 分)
本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNo...原创 2019-11-26 16:18:56 · 289 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文)6-4 链式表的按序号查找 (10 分)
本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef Pt...原创 2019-11-26 16:08:27 · 249 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文)6-3 求链式表的表长 (10 分)
本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;L是给定单链...原创 2019-11-26 16:06:20 · 1646 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文) 6-2 顺序表操作集 (20 分)
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int...原创 2019-11-26 16:03:19 · 528 阅读 · 0 评论 -
PTA数据结构与算法题目集(中文)6-1 单链表逆转 (20 分)
本题要求实现一个函数,将给定的单链表逆转。函数接口定义:List Reverse( List L );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};t...原创 2019-11-26 16:00:19 · 931 阅读 · 0 评论 -
算法与数据结构复习 第八章 检索(详解)
第八章 检索书面作业:一、判断题1、在散列表中,所谓同义词就是具有相同散列地址的两个元素。 (T)解析:具有相同函数值的关键字对该散列函数来说称作同义词。散列表2、在散列中,函数“插入”和“查找”具有同样的时间复杂度。 (T)解析:插入和查找具有同样的时间复杂度O(1)。3、即使把 2 个元素散列到有 100 个单元的表中,仍然有可能发生冲突。 (T)解析:若2个元素的相同...原创 2019-12-06 18:18:49 · 15709 阅读 · 0 评论 -
算法与数据结构复习 第七章 排序(详解)
第七章 排序书面作业一、判断题1、仅基于比较的算法能得到的最好的“最坏时间复杂度”是 O(NlogN)。 (T)解析:下界所谓“下界”, 顾名思义就是对于一个长度为n的序列所需要的最少比较次数。最优下界什么时候最优?决策树从根节点到叶节点的最短长度为n-1,既长度为n的序列本身就是有序(序列从左到右,以升序表示为有序)时就是最优情况,冒泡排序和直接插入法在最优情况下时间复杂...原创 2019-12-05 19:45:11 · 17159 阅读 · 0 评论 -
算法与数据结构复习 第六章 图(详解)
文章目录第六章 图书面作业一、判断题二、单选题三、填空题第六章 图书面作业一、判断题1、如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量。 (T)解析:进行一次广度优先搜索,则与之连通的结点都会遍历到。2、在任一有向图中,所有顶点的入度之和等于所有顶点的出度之和。 (T)解析:一个结点的出度是相连结点的入度;3、用邻接矩阵法存储图,占用的存储空间数...原创 2019-12-04 19:17:19 · 29318 阅读 · 11 评论 -
算法与数据结构复习 第五章 树及二叉树(详解)
文章目录第五章 树及二叉树书面作业一、判断题二、单选题三、填空题第五章 树及二叉树书面作业一、判断题1、某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。 (T)解析:二叉树的前序是先根再左再右,中序是先左再根再右;若相同,则没有左;2、若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点。(F)解析:中序遍历序列...原创 2019-12-04 14:54:58 · 14542 阅读 · 1 评论 -
算法与数据结构复习 第四章 字符串(详解)
第四章 字符串书面作业一、判断题1、字符‘\0’的ASCII码值是0。 (T)2、如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。 (F)解析:C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较;如果返回值 < 0,则表示 str1...原创 2019-12-03 16:44:22 · 9952 阅读 · 1 评论 -
算法与数据结构复习 第三章 栈与队列(详解)
文章目录第三章 栈与队列书面作业一、判断题二、单选题三、程序填空四、函数题第三章 栈与队列书面作业一、判断题1、在对不带头结点的链队列作出队操作时,不会改变头指针的值。 (F)2、循环队列执行出队操作时会引起大量元素的移动。 (F)3、不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。 (T)4、“Circular Queue” is defined to be ...原创 2019-12-02 11:24:54 · 16288 阅读 · 1 评论 -
算法与数据结构复习 第二章 线性表(详解)
第二章 线性表书面作业一、判断题1、顺序存储的线性表可以随机存取。(T)解析:线性表的顺序存储结构可以通过线性表的首址加偏移的方法计算出来第i个数据的位置;而线性表的链式存储结构要访问第i个数据,就必须先访问前面的i-1个数据;2、在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (F)解析:访问结点和增加结点的时间复杂度分别对应为O(N)和O...原创 2019-11-29 10:00:32 · 9204 阅读 · 2 评论 -
算法与数据结构复习题 第一章 绪论
文章目录第一章 绪论书面作业一、判断题二、单选题三、程序填空第一章 绪论书面作业一、判断题1、数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构。 (F)解析:逻辑结构可用不同的存储结构实现,“它依赖于计算机的存储结构”完全说不通。2、算法和程序没有区别,在数据结构中二者是通用的。 (F)解析:算法与程序有区别,算法是解决问题的方法或步骤,而程序是用编程语言描述算...原创 2019-11-28 12:26:04 · 12950 阅读 · 1 评论