数据结构——重点代码汇总
创始人
2024-04-24 03:20:55
0

顺序表

  1. 设计算法,从顺序表L中删除值为x的元素。要求算法的时间复杂度为O(n),空间复杂度为O(1)。

  1. 设计算法,判断一个字符串是否是回文。如a+bc3cb+a是回文序列,而1++3==3+1不是回文序列。

  1. 从顺序存储结构的线性表a中删除第i个元素起的k个元素。设计一个时间复杂度为O(k)的算法。

  1. 请写一算法,在顺序表中查找指定的数据,查找成功则将该记录前面的所有记录后退一个位置,使该记录放到顺序表的最前面。

链表

  1. 试编写在链式存储结构实现求两个集合之差函数difference(A, B)。令C=A-B,取仅当e是A中的一个元素,但不是B中的元素时,e是C中的一个元素。

  1. 试设计在带头结点的单循环链表h中查找元素值为x的结点所在的位置的算法。

  1. 两个链式存储的线性表LA和LB,其元素均按从小到大的升序排序。编写一个算法将它们合并成一个链表LC,要求LC的元素从小到大的升序排序。要求利用原表(即LA表和LB表)的结点空间构造LC表,且算法时间性能达到两个表长之和。

  1. 设计算法将一个带头结点的单链表A分解成两个具有相同结构的链表B,C。其中B表的结点是A表中值为奇数的结点,而C表的结点为A表中值为偶数的结点(链表A的元素类型为整型,要求B,C表利用A表的结点)。

  1. 设有一个由正整数组成的无序单链表,编写完成下列功能的算法:
    • 找出最小值结点,且打印该数值;
    • 若该数值是奇数,则将其与直接后继结点的数值交换;
    • 若该数值是偶数,则将其直接后继结点删除。

  1. 有两个带头结点的循环单链表LA、LB,编写一个算法,将两个循环单链表合并为一个循环单链表,其头指针为LA,并给出时间复杂度。

  1. 编写在带头结点的单链表中删除值为x的结点的函数

void DeleteLinklist(Linklist head, int x)

  1. 设有一个循环单链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表某个结点的指针,试编写算法在链表中删除s所指结点的前驱结点。

  1. 设计算法在带头结点的单链表中结点值为a前插入值为b的结点。

  1. 给定头指针为ha的单链表A和头指针为hb的递增有序单链表B,试利用表A和表B的结点,将表A和表B归并为递增有序单链表C,其头指针为hc(允许有相同的data值,表A、B、C均带有头结点)。

  1. 写一算法,将一带头结点的单链表逆转,要求不要额外占用空间。

  1. 编写一个算法,逐个输出单链表中所有数据元素。设数据元素的数据类型为int类型。

  1. 编写一个求已建好的单链表(表头指针为L)的结点个数的函数。

队列

为防止溢出,队列常用循环顺序队列来实现,常用以下两种策略协助判断循环队列的空和满,即:(1)设一个数据域表示队列中的元素个数,(2)少用一个存储单元。这里采用第一种策略,分别写出入队函数int Enqueue(sql q, qtype x)和出队函数int Dequeue(sql q, qtype *x)。

  1. 写出中序线索二叉树中查找结点*p中序后继的算法。

  1. 二叉链表存储二叉树,写出层序遍历二叉树的算法。

  1. 试编写函数void exchange(NODE *t),其功能是交换二叉树的各结点的左右子树(根结点指针为1)。

  1. 编写算法,判断给定的二叉树是否为二叉排序树。

  1. 试编写一个求二叉树深度的算法。

  1. 以二叉链表作为二叉树的存储结构,编写一个算法,按层次顺序遍历二叉树的方法,统计树中度为1的结点数目。

  1. 已知一棵以二叉链表方式存储的二叉树,编写算法计算二叉树的叶子结点个数。

  1. 写一个算法:判断图的连通性,如果图不连通求出连通分量的个数。

  1. 写出把图的邻接矩阵表示转化为邻接表表示的算法。

  1. 采用邻接表存储结构,编写一个判别无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径的算法。

  1. 假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一条简单有向回路,若存在,则以顶点序列的方式输出该回路。

排序

  1. 设计算法,完成一趟快速排序算法。即将下标从low到high的元素以r[low]为基准分为两部分,小的在前、大的在后。

  1. 编写算法,对N个关键字(均为非零整数值)的记录序列进行整理,使所有关键字为负值的记录排在关键字为非负值的记录之前。要求采用顺序存储结构,算法的时间复杂度为O(n)。

  1. 编写函数InsSort(a, n),完成对数组a[n]的直接插入排序。

  1. 写出折半查找的非递归算法和递归算法。

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...