给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。 函数接口定义: List Delete( List L, ElementType minD, ElementType maxD ); 其中List结构定义如下: typedef int Position; typ…
from: https://yq.aliyun.com/articles/674316 Kruskal算法的思想如下 假设有n个顶点的连通图。首先先构造有顶点构成的集合0,每个顶点都是一个集合,不含有任何边。在边找一个最小权值的边判断这个边的俩个顶点是否来自于两个不同的集合,若是就将它俩归并为一个集合,然后将这个边添加到要构成的图的集合中。直到上述…
Kruskal算法的高效实现需要一种称作并查集的结构。我们在这里不介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论。Kruskal算法的过程: (1) 将全部边按照权值由小到大排序。(2) 按顺序(边权由小到大的顺序)考虑每条边,只要这条边和我们已经选择的边不构成圈,就保留这条边,否则放弃这条边。 算法 成功选择(n-1)条边…
深度优先搜索和广度优先搜索,都是图形搜索算法,它两相似,又却不同,在应用上也被用到不同的地方。这里拿一起讨论,方便比较。 一、深度优先搜索 深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First…
本题要求实现删除单链表的第i个元素结点,删除成功返回1,否则返回0。 函数接口定义: int delete_link ( LinkList L,int i); L为单链表的头指针,i为删除结点的序号 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typedef int ElemType…
本题要求实现带头结点的单链表插入操作,插入成功返回1,否则返回0。 函数接口定义: int insert_link ( LinkList L,int i,ElemType e); L是单链表的头指针,i为插入位置,e是插入的数据元素,插入成功返回1,否则返回0。 裁判测试程序样例: #include <stdio.h> #include &l…
本题要求实现一个函数,统计带头结点的单链表中某个元素出现的次数。 函数接口定义: int GetCount ( LinkList L,ElemType e ); L是带头结点的单链表的头指针,e是要统计次数的元素值。如果e在单链表中存在,函数GetCount返回其出现的次数;否则,返回0。 裁判测试程序样例: #include <stdio.…
本题要求实现一个函数,统计带头结点的单链表中某个元素出现的次数。 函数接口定义: int GetCount ( LinkList L,ElemType e ); L是带头结点的单链表的头指针,e是要统计次数的元素值。如果e在单链表中存在,函数GetCount返回其出现的次数;否则,返回0。 裁判测试程序样例: #include <stdio.…
本题要求实现一个函数,求带头结点的单链表中元素序号。 函数接口定义: int Locate ( LinkList L, ElemType e); L是带头结点的单链表的头指针,e是要查找的元素值。如果e在单链表中存在,函数Locate返回其序号(序号从1开始);否则,返回0。 裁判测试程序样例: #include <stdio.h> #inc…
本题要求实现一个函数,要求将指定元素插入到有序表的合适位置,使得插入后仍然保持有序,若插入失败返回0;插入成功则返回1,并且顺序表的长度加1. 函数接口定义: int SqInsert(SqList &L,ElemType e); 其中SqList结构定义如下: typedef struct{ ElemType *elem; int len…
本题要求实现一个函数,要求将顺序表的第i个元素删掉,成功删除返回1,否则返回0; 函数接口定义: int ListDelete(SqList &L,int i); 其中SqList结构定义如下: typedef struct{ ElemType *elem; int length; }SqList; 裁判测试程序样例: #include &…
本题要求实现一个函数,在顺序表的第i个位置插入一个新的数据元素e,插入成功后顺序表的长度加1,函数返回值为1;插入失败函数返回值为0; 函数接口定义: int ListInsert(SqList &L,int i,ElemType e); 其中SqList结构定义如下: typedef struct{ ElemType *elem; int…
本题要求实现一个函数,要求从顺序表中查找指定元素,并返回第一个查找成功的元素在表中的位置序号,若查找失败,则返回0; 函数接口定义: int LocateElem(SqList L,ElemType e); 其中SqList结构定义如下: typedef struct{ ElemType *elem; int length; }SqList; 裁判…
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负…
对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 "-"。编号间以 1 个空格分隔。…