C++数据结构与算法教程
文章平均质量分 88
中国传媒大学信息与通信工程学院大二上C++课程——数据结构与算法知识点讲解
清清清清弦
中国科学院计算机网络信息中心在读硕士
展开
-
题解——冒泡+二分查找
题解——冒泡+二分查找文章目录题解——冒泡+二分查找题面描述输入输出样例输入样例输出提示题解冒泡排序升序降序二分查找二分查找——升序二分查找——降序输入AC做法原理题目链接:传送门题面描述有一组数据放在数组R[ ]中,R[ ]={9,8,7,6,0,-1,10,-5,-32,66},请调用冒泡排序函数(自己定义函数),先将数组进行排序,然后调用二分查找算法(自己定义函数)查找某数,分别给出比较次数,每个比较次数占一行,比较次数为-1时表示没找到。输入第1行输入排序标志,为1时,对原数组先采用升原创 2020-12-07 21:28:08 · 827 阅读 · 0 评论 -
题解——二叉树哈夫曼编码的实现
请查收你的654行10523字符超复杂题解原创 2020-10-31 01:16:14 · 3759 阅读 · 6 评论 -
题解——二叉树的基本操作
题解——二叉树的基本操作题目链接:传送门描述采用括号表示法的字符串创建二叉链表表示的二叉树,实现二叉树的基本运算,如下:(1)用括号表示法输出二叉树;(2)输出节点的左、右孩子节点值;(3)输出二叉树的深度;(4)输出二叉树的宽度;(5)输出二叉树的节点个数;(6)输出二叉树的叶子节点个数;(7)释放二叉树。输入两行数据:第一行:用括号表示法表示二叉树的字符串;第二行:要求输出的是括号表示法里的第几个节点的左、右孩子节点值;输出按照程序要求输出。其中:输出节点的左、右孩原创 2020-10-21 13:21:32 · 3331 阅读 · 7 评论 -
数据结构与算法——二叉树
二叉树这篇博客主要针对代码实现,有关树和二叉树的基本概念书上讲的贼清楚,我觉得我再讲一遍也不会讲的比书上好了,所以大家如果基本概念有问题,直接看书吧 ^ ç ^文章目录二叉树二叉树的存储结构链式存储结构二叉树的算法设计用字符串建立二叉树什么是括号表示法?代码实现销毁二叉树求高度(深度)求结点个数求叶子结点个数以括号表示法输出二叉树遍历先序遍历中序遍历后序遍历层次遍历层次遍历的案例二叉树的存储结构二叉树的存储结构有顺序存储结构和链式存储结构两种,其中顺序存储结构的操作相对简单,但在二叉树较空的情况下空原创 2020-10-20 23:39:14 · 1681 阅读 · 3 评论 -
数据结构与算法——队列
队列采用先进先出的结构,就像排队打饭一样,先来(先入队)的人先打饭(先出队),后来(后入队)的人后打饭(出队)。原创 2020-10-13 09:03:37 · 767 阅读 · 0 评论 -
题解——括号匹配
题解——括号匹配题目链接:传送门描述假设表达式中只包含三种括号:圆括号、方括号和花括号,它们可相互嵌套,如([{}])或({[][()]})等均为正确的格式,而{[]})}或{[()]或([]}均为不正确的格式.输入一串括号如果输入的右括号多余,输出:Extra right brackets如果输入的左括号多余, 输出:Extra left brackets如果输入的括号不匹配,输出:Brackets not match如果输入的括号匹配,输出:Brackets match输入{{{{)原创 2020-10-11 22:17:41 · 2446 阅读 · 2 评论 -
题解——舞伴问题
题解——舞伴问题题目链接:传送门描述假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。输入第一行男士人数m和女士人数n;第二行舞曲的数目k。输出共k行,每行两个数,表示配对舞伴的序号,男士在前,女士在后。样例输入4 36样例输出1 12 23 34 11 22 3题解题意这原创 2020-10-07 23:55:59 · 3209 阅读 · 0 评论 -
题解——出栈序列统计
题解——出栈序列统计题目链接:传送门描述栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。输入就一个数n(1≤n≤15)。输出一个数,即可能输出序列的总数目。样例输入3样例输出5提示先了解栈的两种基本原创 2020-10-07 22:56:32 · 2272 阅读 · 0 评论 -
数据结构与算法——栈
深夜入栈~原创 2020-10-06 00:02:16 · 1741 阅读 · 1 评论 -
数据结构与算法——双链表题解
数据结构与算法——双链表题解由于作业只要求前四个题,且最后一道题的测试样例可能有点问题,所以我先写一下前四道题的题解btw. 我做题解的时候,除了给出题目链接外,还会把题抄一遍,主要目的当然是凑字数 是csdn的代码块可以直接复制,这样便于你在自己电脑上写代码的时候复制样例进行测试。再加上为了确保题解能Accepted,我都会自己提交一遍,所以大家:千万千万不要直接复制粘贴提交一套带走,因为这样不仅没什么收获,还会被老师带走。不要生看,建议在电脑上看,一边看一边抄一遍,哪里不懂自己运行一下就懂啦!原创 2020-09-30 13:01:18 · 2007 阅读 · 5 评论 -
数据结构与算法——双链表
数据结构与算法——双链表文章目录数据结构与算法——双链表学习思路双链表的基本结构双链表的基本操作定义双链表——C++版插入结点在某个结点后插入元素在某个结点前插入元素记忆方法在头部插入元素s在尾部插入元素s删除结点遍历元素求长度双链表的进阶操作输出销毁头插法建表尾插法建表删除第i个元素在第i个元素后插入值为value的元素学习思路与单链表一样,我还是建议用过掌握基础操作来拼凑成大的操作。双链表的基本结构单链表指针域只有一个next指针,指向下一个结点,这就导致了它只能从前往后访问。为了弥补这一缺陷原创 2020-09-28 21:31:08 · 887 阅读 · 0 评论 -
数据结构与算法——单链表及第三次实验题解
包含对单链表基础知识的讲解、C++版的定义及第三次实验课前三道题的题解原创 2020-09-27 19:37:04 · 2575 阅读 · 6 评论 -
数据结构与算法——第二次实验课题解
这几天实在是事儿多,拖到ddl最后一天才出题解,我看大家很多人都提交完了,如果感觉没学明白的,或者提交的代码可能不符合要求的,可以看看。原创 2020-09-19 11:55:29 · 1235 阅读 · 0 评论 -
数据结构与算法——第一节课实验题解
第一次课实验题题解递归总而言之,递归就是函数自己调用自己。递归是一个很难理解的算法,我们先看下面这个引例来了解一下,对递归已经很熟悉的同学可以跳过这部分。递归的引例int num=0; //计数器,用于记录递归调用次数int find(int n){ if(n==1)return num; //递归结束,返回结果 n=n-1; //n减小 num++; //num++表示运行了一次 return find(n); //递归调用}}如果n=1,函数在第一个i原创 2020-09-09 00:19:16 · 1889 阅读 · 0 评论 -
C++模版template
模版模版相关知识对下学期的数据结构学习有重要作用,比如在链表、栈、队列的学习中频繁应用。下面是一段较为完整的链栈结构:ps. 不需要看懂这段代码,它只是为了说明模版在后续学习中的作用#include <iostream>using namespace std;template<class T> //模版class linkStack{private: struct Node{ T data; //模版 Node* next;原创 2020-09-05 14:15:44 · 974 阅读 · 0 评论 -
sort排序函数入门用法
sort函数sort是C++的STL中非常常用的排序函数,头文件为<algorithm>sort(start,end,cmp);其中start、end分别为参与排序的首尾地址,函数将[start,end)范围内的元素进行排序cmp为比较规则,默认值为从小到大。#include <iostream>#include <algorithm>using namespace std;int main(){ int t[10]={3,4,2,1,8,7,原创 2020-07-30 21:16:55 · 826 阅读 · 0 评论 -
string的简单应用入门
string字符串头文件:#include <string>是区别于用char定义的另一种字符串,相对于char,具有功能更丰富的自带函数。string相当于一个系统自带的类,它的声明、自带函数可以理解为类的构造函数和成员函数。string字符串声明最简单粗暴的定义形式:string str;定义一个名为str的空字符串,不需要设置长度,系统会根据字符串的内容自行分配空间,并跟随其长度的改变而改变。它是个类,自然可以有构造函数,所以出了最简单粗暴的定义外,它还可以使用系统自带的构造原创 2020-07-30 20:21:25 · 432 阅读 · 0 评论 -
常用字符串处理函数入门
字符串处理函数 strxxx用于处理使用char定义的字符串头文件:#include <cstring>ps.在C语言中,字符串相关函数的头文件为<string.h>,在C++中,一般去掉.h,在其前面加cpps.文末有一道例题,可以先去看看例题怎么做,再回来看这几种函数文章目录字符串处理函数 strxxx备用知识——字符串截止符 \0strlenstrlen的常见用法作为for循环的终止条件strcpystrcpy的常见用法交换两个字符串strcatstrcmpstrcm原创 2020-07-23 12:07:45 · 666 阅读 · 0 评论