数据结构与算法第四套试卷(青科大)

news2024/11/16 18:08:45

1.图

无向图入度=出度之和
所有入度之和为=2*边数

2.树

如果
**知识点:**注意二叉排序树!=深度平衡树,所以可能会出现极端现象(链表),时间复杂度为0(n),如果为最好情况即为0(logn)

3.图

1.邻接表n个表头节点则说明有n个顶点,m个表节点说明图有m条(有向图)
2.无向图在邻接矩阵中是对称的
在这里插入图片描述
解: A[i][j]=1

4.双向链表删除节点

在这里插入图片描述
1.p->llink->rlink=p->rlink;
2.p->rlink->llink=p->llink;

5.高度

log2n+1;

6.完全二叉树

高度为h的节点范围为:2^(h-1)-1+1=2的h-1次方~2的h次方-1

7.建堆

第一个元素建堆必须从n/2开始建
在这里插入图片描述

8.哈夫曼树

介绍: 不断合并权值较小的两棵树来生成新的树,直至所有的元素合并成一棵树为止,每次合并都会生成一个新的内部节点,其权值为两个子树权值之和,直到最终形成一棵完整的哈夫曼树。

特殊之处: 只有n0和n2的节点,所以n=n0+n2=2n0-1;所以n0为50,99个节点的哈夫曼树一共有50个叶子节点;

9.二叉链

对于n个节点的二叉树有2n个指针域,一共n-1个非空指针域,n+1个空指针域,所以99个节点,一共有198个指针域,非空有98个,空指针域一共有100个;

10.循环队列

当一个循环队列有m个存储单元,则循环队列最多能够存储m-1个元素;反之,若一个循环队列能够存储m-1个元素,则循环队列至少有m个存储单元

11.小根堆的构造

与大根堆类似,就是小的元素当根节点去了;
在这里插入图片描述
小根堆的构造:
请添加图片描述

12.树的遍历

在这里插入图片描述

13.链地址法:

在这里插入图片描述
第一空: hashtable[i]=NULL; (初始化散列表每个位置的指针指向为空)
第二空: hashtable[k]=s;将新节点s插入到散列表中位置k处的链表头部
s->next=hashtable[k]的原因:
目的是将新节点snext指针指向散列表hashtable中位置k处的链表头部
在链地址法中,如果多个关键字映射到同一个位置,可以采用链表解决,当要插入新节点s时,完美为了确保 新节点能够连接到链表的头部,故将新节点s的next指针指向当前k位置的来年表头部——>使新节点s成为的链表头部

大题:

1.广义表

在这里插入图片描述
1.表头: (a)
2.表尾:(记得多部分时,需要加个括号) (((b),c),(((d))));
3.长度:(数逗号区分开来的部分个数即可) 3个
4.深度: 数最多括号数即可——>4个

2.森林和二叉树:

森林转二叉树:
主要抓住一个思想,左孩子右兄弟
森林的遍历,前序遍历等于二叉树的前序遍历,中序遍历等于二叉树的后序遍历
在这里插入图片描述
在这里插入图片描述

3.散列法

一般取质数(素数)
在这里插入图片描述
H(4)=H(5)=0,H(3)=H(6)=H(9)=2,H(8)=3,H(2)=H(7)=6
请添加图片描述

4.交换二叉树上所有节点左右子树

typedef struct Node{
  int data;
  struct Node* lchild,*rchild;
}BiTree;

void swapTree(BiTree *head){
   //1.BASE
   if(head==NULL) return;
   //2.递归到左右子树节点
   BiTree* left=swapTree(head->lchild);
   BiTree* right=swapTree(head->rchild);
   //3.交换
   root->left=right;
   root->right=left;
}

5.分类链表

设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使
每个单链表只包含同类字符

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    char data;
    struct Node* next;
} Node;

void splitLinkedList(Node* head, Node** uppercaseList, Node** digitList, Node** otherList) {
    Node *current = head;
    Node *upperHead = NULL, *digitHead = NULL, *otherHead = NULL;
    
    Node *upperTail = NULL, *digitTail = NULL, *otherTail = NULL;
    
    while (current != NULL) {
        Node *temp = current->next;
        
        if ((current->data >= 'A' && current->data <= 'Z')) { // 大写字母
            if (upperHead == NULL) {
                upperHead = current;
                upperTail = current;
                current->next = NULL;
            } else {
                upperTail->next = current;
                upperTail = current;
                current->next = NULL;
            }
        } else if ((current->data >= '0' && current->data <= '9')) { // 数字
            if (digitHead == NULL) {
                digitHead = current;
                digitTail = current;
                current->next = NULL;
            } else {
                digitTail->next = current;
                digitTail = current;
                current->next = NULL;
            }
        } else { // 其他字符
            if (otherHead == NULL) {
                otherHead = current;
                otherTail = current;
                current->next = NULL;
            } else {
                otherTail->next = current;
                otherTail = current;
                current->next = NULL;
            }
        }
        
        current = temp;
    }
    
    *uppercaseList = upperHead;
    *digitList = digitHead;
    *otherList = otherHead;
}

// 示例函数,打印单链表中的元素
void printLinkedList(Node* head) {
    Node* current = head;
    while (current != NULL) {
        printf("%c -> ", current->data);
        current = current->next;
    }
    printf("NULL\n");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1508612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32利用标准库编写同时输出4路PWM信号的程序(Proteus)仿真

先看看结果&#xff1a; 这个是根据上午发的文章的基础上更改的&#xff0c;很简单&#xff0c;只是用了一个定时器&#xff0c;初始化了4个比较器而已&#xff0c;就可以单独的控制每一路PWM的占空比了&#xff0c;好了&#xff0c;把源文件展示一下&#xff0c;完事去接孩子放…

Wilson威尔逊平滑

1、威尔逊平滑引入的动机 在曝光很少的情况下&#xff0c;计算出的CTR并不真实可靠&#xff0c;而样本数越大&#xff0c;CTR的比例才越准确&#xff0c;更能反应真实情况。 为了衡量样本数对于CTR信区间的影响&#xff0c;我们引入"威尔逊&#xff08;Wilson&#xff0…

2024暑期实习八股笔记

文章目录 自我介绍MySQL索引索引种类、B树聚簇索引、非聚簇索引联合索引、最左前缀匹配原则索引下推索引失效索引优化 日志、缓冲池redo log&#xff08;重做日志&#xff09;刷盘时机日志文件组 bin log&#xff08;归档日志&#xff09;记录格式写入机制 两阶段提交undo log&…

骨传导耳机如何选购?新手必看的6个避雷小妙招!

在短短几年内&#xff0c;骨传导耳机的市场规模一路攀升&#xff0c;今年甚至有望成为最受欢迎的蓝牙耳机款式&#xff0c;但与此同时&#xff0c;整个骨传导耳机行业也频繁出现乱象&#xff0c;不专业产品鱼龙混杂&#xff0c;令人吃惊的是&#xff0c;还有许多中小网红品牌也…

ctfshow web入门 php特性总结

1.web89 intval函数的利用&#xff0c;intval函数获取变量的整数值&#xff0c;失败时返回0&#xff0c;空的数组返回&#xff0c;非空数组返回1 num[]1 intval ( mixed $var [, int $base 10 ] ) : int Note: 如果 base 是 0&#xff0c;通过检测 var 的格式来决定使用的进…

【Redis】RedisTemplate序列化传输数据

使用自定义的序列化器 使用RedisTemplate默认的序列化器发送数据&#xff0c;会将key全都当成Object处理&#xff0c;从而按照对象的方式转成json格式发送到服务器&#xff0c;这样会导致两个问题。一是不方便阅读&#xff0c;二是会大大浪费内存。因此&#xff0c;建议自定义…

SQLiteC/C++接口详细介绍(一)

上一篇&#xff1a;SQLiteC/C接口简介 下一篇&#xff1a;SQLiteC/C接口详细介绍&#xff08;二&#xff09; 引言&#xff1a; SQLite C/C 数据库接口是一个流行的SQLite库使用形式&#xff0c;它允许开发者在C和C代码中嵌入 SQLite 基本功能的解决方案。通过 SQLite C/C 数据…

企业内部培训考试系统题库功能开发说明

学练考结合中&#xff0c;练是很关键的一环&#xff0c;将考察学习成功的试题导入企业内部培训考试系统的题库中&#xff0c;既可以作为日常学习后的作业巩固练习&#xff0c;又可以组卷进入正式考试里的试卷里。日常考试前更是可以反复练习题库里的各种试题。 校营宝企业内部…

LLM 构建Data Muti-Agents 赋能数据分析平台的实践之①:数据采集

一、 概述 在推进产业数字化的过程中&#xff0c;数据作为最重要的资源是优化产业管控过程和提升产业数字化水平的基础一环&#xff0c;如何实现数据采集工作的便利化、高效化、智能化是降低数据分析体系运转成本以及推动数据价值挖掘体系的基础手段。随着数字化在产业端的推进…

AXI相关知识点

1、Axcache相关知识点 xilinx 文档Pg059推荐&#xff1a; . Xilinx recommends that master devices drive their AW/RCACHE outputs to 0b0011 to allow the AXI Interconnect core to pack data while performing width conversion. 下面这篇文档对Axcache讲解的非常通俗易…

2024年春招|个人简历范本(精选5篇)

HR浏览一份简历也就25秒左右,如果你连「好简历」都没有,怎么能找到好工作呢? 如果你不懂得如何在简历上展示自己,或者觉得怎么改简历都不出彩,那请你一定仔细读完。 个人求职简历第 1 篇 男 22 本科 AI简历 市场营销 123456789 resume@ai-tools.cn 个人概述 以互联…

数据库--SQL语言-1

练习网站&#xff1a;自学SQL网 Select 查询语法复习 SELECT column, another_column, …FROM mytableWHERE condition AND/OR another_condition AND/OR …; 操作符号&#xff1a; 如果属性是字符串, 我们会用到字符串相关的一些操作符号&#xff0c;其中 LIKE&#xff08…

「CISP题库精讲」CISP题库习题解析精讲5道

前言 本节只要对CISP考试中的5道习题进行详细的讲解,时间比较少,敲多少道,就算多少道,反正全部也就1400多道。 习题部分 第一题 某企业内网中感染了一种依靠移动存储进行传播的特洛伊木马病毒,由于企业部署的杀毒软件,为了解决该病毒在企业内部传播,作为信息化负责人…

C++进阶之路---多态(二)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、多态的原理 1.虚函数表 // 这里常考一道笔试题&#xff1a;sizeof(Base)是多少&#xff1f; class Base { public:…

Java怎么实现word转PDF?

问题背景 这其实源自于使用ES搜索word、pdf等文档的方案实现过程&#xff0c;出现了只能正确解析pdf却不能解析word内容的错误&#xff0c;于是折中方案何不直接把word转成pdf呢&#xff1f;word转pdf肯定是比pdf转word容易太多了。 实现方案 以下是针对多种Java环境下将Wor…

我用 Python 做了个小仙女代码蹦迪视频

前言 最近在B站上看到一个漂亮的仙女姐姐跳舞视频&#xff0c;循环看了亿遍又亿遍&#xff0c;久久不能离开&#xff01; 看着仙紫小姐姐的蹦迪视频&#xff0c;除了一键三连还能做什么&#xff1f;突发奇想&#xff0c;能不能把小仙女的蹦迪视频转成代码舞呢&#xff1f; 说…

Python 基于 OpenCV 视觉图像处理实战 之 背景知识

Python 基于 OpenCV 视觉图像处理实战 之 背景知识 目录 Python 基于 OpenCV 视觉图像处理实战 之 背景知识 一、简单介绍 二、人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09; 三、OpenCV 四、计算机视觉任务的主要类型 五、计算机视觉是通…

博客系统(SSM)

前端页面http://t.csdnimg.cn/zwKyG以上是之前写过的博客前端页面的内容&#xff0c;下面是通过SSM实现的后端内容。 目录 一.准备工作 1.1数据准备 1.2修改配置版本文件 1.3配置数据库 二.项目公共模块 2.1实体类 2.2操作数据库部分 三.功能开发 3.1博客列表 获取博…

确保电子设备稳定运行:晶振安装的详细检查方法

晶振的安装质量直接影响到电路的稳定性和可靠性&#xff0c;因此&#xff0c;检查晶振安装是否正确是非常重要的。下面&#xff0c;我们将介绍一些检查晶振安装是否正确的方法。 1. 检查晶振引脚的焊接质量 在检查晶振安装时&#xff0c;首先要确保晶振的引脚已经正确且牢固地…

stata中inlist2命令(划分区域的简洁命令)

inlist2 首先在stata命令框中输入ssc install inlist2,replace与传统的inlist命令相比&#xff0c;第一是没有字符串个数限制&#xff0c;第二是不用加引号。 常见的划分区域的stata命令 1.最原始的做法 gen area1 if province"北京市"|province"天津市"…