假如看较难了解的Vff0c;可以复制文章下对应知识点的二级题目正在其它愈加具体的文章里面查抄结果Vff0c;大概复制给AIVff0c;正在它供给的参考文献里粗略同样也能获得想要的答案
快捷索引
1.绪论 2.线性表 3.堆栈和队列 4.数组和字符串 5.树Vff0c;二叉树和搜寻树 6.汇折 7.图 8.哈希表 9.牌序
第一局部--绪论Vff1a; 1.根柢观念Vff1a;数据 (Data)Vff1a;是信息的载体Vff0c;可被计较机识别并加工办理的对象
数据元素(Element)Vff1a;构成数据的根柢单位Vff0c;具有一定意义。
数据项 (Item)Vff1a;是构成数据元素的、不身收解的最小单位。
数据元素的逻辑构造可以分为线性构造和非线性构造Vff08;汇折Vff0c;图形Vff0c;树Vff09;两类。
数据元素的存储构造可以分为顺序Vff0c;链式Vff0c;索引和散列四种存储构造。
数据的运算次要包孕搜寻Vff0c;插入Vff0c;增除Vff0c;更新四种运算。
同一逻辑构造可以对应多种存储构造。
同样的运算Vff0c;正在差异的存储构造中Vff0c;其真现历程是差异的。
用来默示类似于C++中的模板观念Vff0c;便于泛型阐明
3.算法复纯度阐明次要关注光阳复纯度Vff0c;同数据的范围Vff0c;办法的执止次数成正相关Vff0c;用OVff08;VVff09;来默示起次要映响力的数质级Vff08;PsVff1a;假如你高数还没忘光的话应当还记得那和佩亚诺余项长的很是相似Vff09;
第二局部--线性表 1.顺序存储构造 Vff08;1Vff09;线性表可以近似的室为一维数组。
正在C++内以std::ZZZector的真现模式居多Vff0c;C语言则次要以一维数组为主。
运用指针来记录链表Vff0c;链表的每个节点均包孕一个值节点和一个neVt指针Vff0c;指针类型为原节点名指针
头节点可以用于代表该链表Vff0c;头节点正常不寄存数据
以下为C语言环境下的真现
界说Vff1a;
插入InsertVff1a;
增除Erase/DeleteVff1a;
将单链表中最后一个结点的指针域存储头结点的地址Vff0c;使得整个单链表造成一个环Vff0c;那种头尾相接的单链表称为单循环链表。
Vff08;3Vff09; 双向链表正在普通链表的根原上删多一个前驱指针
后进先出
次要构造为栈顶元素top
C真现如下Vff1a;
建栈Create:
销誉和根除Destory/ClearVff1a;
判满和判空Full/EmptyVff1a;
获与栈顶topVff1a;
入栈PushVff1a;
出栈PopVff1a;
栈同样可以停行链式存储Vff0c;那里不作赘述
正在C++中Vff0c;可以通过运用STL容器std::stack来执止上述收配
Vff08;2Vff09;队列Queue先进先出
次要元素为队头front和队尾rear
假溢出Vff1a;
处置惩罚惩罚方案Vff08;循环队列Vff09;Vff1a;
C真现如下Vff1a;
建队CrateVff1a;
销誉和根除Destory/ClearVff1a;
判满和判空Full/EmptyVff1a;
获与队头FrontVff1a;
入队EnqueueVff1a;
出队DequeueVff1a;
队列也可以给取链式存储真现Vff1a;
正在C++中Vff0c;可以运用std::queue来运用队列
Vff08;3Vff09;中缀表达式和后缀表达式正在力扣上有逆波兰表达式求值的题目问题Vff0c;可以去训练一下
中缀表达式向后缀表达式转化Vff1a;
至于分治Vff0c;递归和非递归Vff0c;倡议真操感应Vff0c;没有硬性知识点Vff0c;只有能顺利了解汉诺塔问题的处置惩罚惩罚Vff0c;那一局部就不会有问题
第四局部--数组和字符串 Vff08;1Vff09;数组Array一维数组同普通数组
止劣先存储下地址的计较Vff1a;
列劣先存储下地址的计较Vff1a;
对称矩阵Vff1a;
稀疏矩阵Vff1a;
稀疏矩阵的快捷转置算法Vff1a;
难点Vff0c;倡议有光阳径自细啃
Vff08;3Vff09;字符串String素量上便是字符数组
C++内可以运用std::string来真现字符串
焦点 第五局部--树和二叉树Vff0c;搜寻树 Vff08;1Vff09;树Tree间接界说Vff1a;
递归界说Vff1a;
根柢术语Vff1a;
非凡二叉树Vff1a;
二叉树的存储默示Vff1a;
二叉树的运算Vff1a;
C真现Vff1a;
二叉树的遍历Vff1a;
中序遍历Vff08;LxRVff09;Vff1a;
正罕用于牌序和查找
后序遍历Vff08;xRLVff09;Vff1a;
正罕用于二叉树的增除
先序遍历Vff08;xLRVff09;大约同后序Vff0c;但会见根节点语句放正在最前面执止Vff0c;正罕用于二叉树的创设
层序遍历Vff1a;
创立CreateVff1a;
销誉DestroyVff1a;
判空EmptyVff1a;
判满FullVff1a;
获与元素数质SizeVff1a;
逃加AppendVff1a;
移出SerZZZeVff1a;
出格提示Vff0c;正在C++ 11以上版原中Vff0c;可以运用STL供给的std::priority_queue来间接运用劣先队列
Vff08;6Vff09;哈夫曼树Haffman Tree查找思想为二分查找
二叉搜寻树的插入InsertVff1a;
二叉搜寻树的增除EraseVff1a;
有关详细的单旋转和双旋转的历程可以参照该文章
Vff08;9Vff09;m叉平衡树 m-Tree拓展内容Vff0c;检验不作要求Vff0c;可看
第六局部--汇折 Vff08;1Vff09;汇折SetC++11后Vff0c;可以运用封拆好的STL容器std::set和std::multiset来默示汇折和可重复汇折
Vff08;2Vff09;线性查找Linear Search 1.无序表Unordered ListVff1a;哨兵正在乐成之后会截断搜寻
Vff08;3Vff09;二分查找Binary Search但凡状况下正在算法题里的二分查找模式Vff1a;
正在C++11后Vff0c;可以运用封拆好的STL容器std::unordered_map<std::pair>来默示哈希表了Vff0c;而std::unordered_set可以用于默示哈希汇折
Vff08;2Vff09;哈希函数Hash Function将函数体中的key给取线性表达式修正后能改制一些有余
由于教学PPT的内容不尽具体Vff0c;对于单源最短途径详细可参考
Vff08;12Vff09;所有顶点的最短途径All-Pairs Shortest Paths学校的教学PPT上没有对于Floyd算法的具体内容Vff0c;但课原上依然有那方面的内容Vff0c;若要详细理解可参考该篇博文
第九局部--牌序Sort教学PPT没有给出完好的堆牌序示例Vff0c;不过逃溯到之前第五章的堆局部Vff0c;可以运用其建堆算法和调解算法完成详细的堆牌序。
个人倡议Vff0c;正在C++11后Vff0c;可以运用封拆好的STL容器std::priority_queue来做为劣先队列帮助执止堆牌序Vff0c;个人亲身检验测验Vff0c;正在Leetcode的局部逃求机能的算法题里Vff0c;用该帮助容器执止的堆牌序要快于内置是std::sortVff08;但凡是快牌Vff09;
Vff08;7Vff09;外牌序EVternal Sort教学PPT上没有Vff0c;书上也只提了一嘴Vff0c;不须要把握Vff0c;只做理解便可
可以参考
另外Vff0c;另有一种知名的牌序算法Vff0c;希尔牌序Vff0c;但是未被列入教学PPT中Vff0c;可供参考
祝各位期终检验顺利通关
来了! 中公教育推出AI数智课程,虚拟数字讲师“小鹿”首次亮...
浏览:81 时间:2025-01-13变美指南 | 豆妃灭痘舒缓组合拳,让你过个亮眼的新年!...
浏览:63 时间:2024-11-10中国十大饮料排行榜 中国最受欢迎饮品排名 中国人最爱喝的饮料...
浏览:61 时间:2024-11-19西南证券维持圣邦股份买入评级:应用拓展,结构优化,模拟IC龙...
浏览:1 时间:2025-02-22