将图的广度优先遍历在邻接矩阵和邻接表存储结构上分别实现_《青岛大学-王卓-数据结构》B站学习...

本教程详细讲解了数据结构中的核心概念,包括二叉树、图、查找等多种数据结构的定义、存储方式及算法实现。通过丰富的示例和深入浅出的解析帮助读者掌握数据结构的基础知识。

cadd2f54c9893d84522f91b401d29a75.png

看书看得犯困,看是来B站找找视频看吧,2020年8月10日

今天发现了宝藏视频,讲得很细致,说不定我可以放弃看书了,哈哈哈

先从第7周-树看着走吧

学习网站:

青岛大学-王卓-数据结构​www.bilibili.com
a19cf6bf9b3bc18a3aece416a163f313.png

484b1ab12b15b1dae096a57efa5c94cc.png

6a965a4f3cf5e56da1f35058819fc752.png

aae51e2a9dfbe7f02df6e115db6be79b.png

第1周:

89c40d868842b420b69f55ad0d07c870.png

第01周a--前言

64a23a6f0e1f9732d2c43121c4e35ea3.png

第01周b--1.1数据结构研究内容

0701ee34946836f4149d4f3fee294fb3.png

25ac976fbbb5081fcec230a2dd7390c6.png

402c6983a50203c94affcb8da65aeacf.png

131ff809f9b2af67b5b79c575190cc87.png

d81e6333b6c0eec39421a8db702f5e06.png

e7423f027e95e778311952b5cbfb9e5f.png

dcf4e8d61feef63572e9619dcd6ac779.png

435030a5b65f481c84140ff041a6cc2c.png

a759ee029eeaf424d7fd2d9f40501e49.png

1901e18d136b9496e516e2e89a74cedb.png

056db253c9840585067d058f861adba6.png

68871a58f1dcf9305e82f9fbb0f68242.png

第01周d--1.2基本概念和术语2

75dba9d0401537b1cefad11329643288.png

8c4b4b806c267db30ffc90741d0a1a87.png

060c66848ba66ffad613e1584c68c0a5.png

09476b150e899f081a21fd76d3563977.png

5491b554864c32698415d0f3763331fd.png

638447e810c6c5b5f2262f8ff90eb9fd.png

c53cb30bd858e1e9e777468f855e9f64.png

第01周e--1.3抽象数据类型的表示与实现

第01周f--1.4算法与算法分析1

7dd5914fc04ae2a415ad30b4cb6d3bfa.png

8e16a5aa350e8fd5ac19203a60339f71.png

b371c8565b3fcba0aae0d91643667bbb.png

第01周g--1.4算法与算法分析2

a5c4d3bbdd07836915ab0f0c583f7f10.png

0d2a4f3e5246509e4b97fc92f7f7ef3b.png

f620cdd3128031aba4a9c749a147ab2f.png

9a615df5e0bc1f91e0fe763f868bbc17.png

7304696218340478c54ceca886a62ef1.png

第01周h--1.4算法与算法分析3

700ee29dc41c9443b1a80472ddd7a104.png

86692181799105c3403c774fd7093d7a.png

3af529a5279c799f89d924e1bbf3b6f4.png

e687d526a0db3e22562c4803d0d8fdb7.png

第2周:

3abbcbe3e26ef673a606b03e25081706.png

fc0b5f8387502db0b2fa2934b05822f9.png

95d55470237ba33906b4e15c3226973e.png

第7周:

57b85a2c780544c79f05384330fef22a.png

e2e07e3a7f801a648b6e3f5fbe493218.png

0cc9da0b7dd1ce9b7ec3df7a4f3d1b07.png

e7ade084c0ad5b511df6a08efab455b5.png

2b6bdcc4da4a8326a171946f441aae52.png

47d7481d826b7eecd212001a9dcf5e72.png

45091f409632bb25af6618f7160c4ce4.png
证明:n0=n2+1

12152d9152daa5fd741a58418b581b46.png
满二叉树

46733c77a1dee87a4958dcc25c310eec.png
完全二叉树

5c469091eb4fd7a8cac5dac91b54d388.png
完全二叉树的特点

4d6cdc52f59725b379e54e63f27edd55.png
二叉树的顺序存储结构

3c54fee5d775edcd6724e6b573f8f1aa.png
二叉树的链式存储结构

9032c464fd866ba7514b6d9f36b61f14.png
n+1个空指针域

d0ff9d09ad7c12b67b75f0a91676ca99.png
遍历二叉树,先序、中序、后序

eb5899c3d6edb15b1993d020cfc9d013.png
确定二叉树:先中、后中。先后不行!

第8周:

d19605afe8a7ef388a5b598154b414b9.png

90005bdc292990f5a59b31df5f716143.png
先序遍历算法

169ccff6e06851653e15db47eed7f77a.png
先序算法流程,递归示意图

28214d4cafc4037989b52c3259407474.png
先、中、后代码合集

eef9a56444c5b514c72a0443d07fc680.png
算法分析

89a2453a154a86311a29f856744558b1.png

f0987e7ee92042afb2410d92910c4bc4.png
非递归,用栈的方法

bad1141d5f8b06b25bf67429d27ec7b4.png
层次遍历算法

4c967e4e62d2af0f62db6b0c0b785dc7.png
构造树

35966fa23654723862ea0d840ab5c208.png
结点总数

64642e384bab6ae33077ab4c0e5a2086.png
叶子结点总数

9c3c0792cf65026d981f691504f2154d.png
线索化

96588f41c97adc88acaa5531ae0c1131.png
增设头结点

树和森林:

双亲表示法:

35c057deda137a3e0abc3884fc7e8cd0.png

1a4eb367eac73be4771e4cf0eb74c2fd.png

d17be8fe9d747c926f1989d794f79f77.png

756200dbfa635a605e5e3e2a7e84ebf8.png

孩子链表:

4d0149adf43ba62e3ee8dfbe6279c531.png

ada5fe589a920afe5b7a3fbebdf30cb7.png

带双亲的孩子链表:

d311c0be8f25262099edf548e20e0937.png

孩子兄弟表示法:左手孩子,右手兄弟

9e0e720c3f54219ef5cd976d88fec06b.png

b5b04ec3c9aa853079d8072c429d6033.png

树与二叉树的转换:

f4021d12f4cbbb50455fd8113542b4af.png

24475cbb573bea4670df6638d9be8743.png

7517919bf12bb85afc544f6597052969.png

59e42e024a399659610cc090a827b932.png

f7a9a49c40e32789f1887329996eae99.png

森林与二叉树的转换:

c8ef532706762d4c8b0a0c28d9cc3bd4.png

b24379a3652ae50a2b1673dbf868b287.png

ce2be8eedf29dbeff58e436b11162169.png

森林的遍历:

dba6d0ea8c41a48da997aba316f00ac8.png

32f9004eac39a66083307b2c30bdc8c6.png
中序遍历,就是树的【后根遍历】

第9周:

哈夫曼树:

d2cbeec51cc963e7d3116b5174c170e5.png
路径长路:两个结点之间的分支数

2199f38269c5810cf87ef7685373f12b.png

042cfdc1a3129a5f11740a3097e53c1f.png

c4d0181b6daa5f864f54c0153677c2b3.png

哈夫曼树的构造:

f624f889bf4e785e431545b4358c54fd.png

c2281e4142cecd438739dd50f9985c48.png

153d4d28d0ea807a67172e387cc4fe1f.png

87720076296ccf79221be1cc553f8e4b.png

c23a61230d849408cae0a9654a7b0349.png

构造哈夫曼树:

5713e9c5c10653bf487709be902b2891.png

12ebb720efa71c567edd349b717c6a92.png

bc646a926444b7ee69cafd1ac19eafa1.png

b04ab51bf19abce7025d9b96e793cbee.png

哈夫曼树及其应用:

d1eedf057ebc9d455c30274c34607860.png

ce965915528ac764fff73f558036d1bb.png

4233ecd6333861afad098a38b3d5d2a6.png

d5229c366acbf6a608eb85db8867fff6.png

树完了!!!下面是图了=======================

c7b5cbe5bb33cdb09f91a35278f60540.png

32784f01f1e78178518743298541ae62.png

b807e92442020af747e4a9155a0b7ad5.png

a94b1b8b247f2d8e61457ed72b9b6ec0.png

122314b796586eb127ce4fa70d6969b2.png
有向树

f72a65cda52ba465550fa1fb139e6bca.png

箭头上有方向的就是【强连通图】

7af1a1128b664f99198d82f908aab6a7.png

e0a10703845f95c58fcb11866e2bff1d.png

bbb1ef08c01c86e681d5bf4dd2f41ff9.png
"∈"是属于符号(元素属于某个集合),"⊆"是包含于符号(集合包含于某个集合)

e9b327fc9a4f7d0899ab873cd1ce74e2.png

3ea59bda2d8ec069df6bf07c3e780d10.png

8e6c9bfdf8ef1d79bd7d5b550d9a83b0.png

案例引入:六度空间理论

da653ff9553d7fd42004dc4ad3c9edc7.png

51f8f83407bfb0ee7767f73b71740d85.png

图的数据类型定义:

ee7e282ee0861576f599573c02a7e56f.png

ce3d30337c3be6d721fb23d0ca703765.png

22171ca7ce7f882378dabaeae95f879c.png

第10周:

6.4图的存储结构

5ed9243e4ee0739d2998ed2fa9c64297.png

6.4.1邻接矩阵(二维数组)

7a8232cb1c509f06b741468252321f87.png

无向图的邻接矩阵:

e7175b31eaba760cd2e8c276893dd9af.png

有向图的邻接矩阵表示法:

ee73a920b63cd941055c5ecc07a630b2.png

网(有权图):

fb1941e2e12c142a5da327e11648af93.png

邻接矩阵的存储表示:

7d5f1188972bf5bb4384fccc5149ab5c.png

5e389f0b22248ad790a8065c63385599.png

c6e380d303f397df3c032ebb8bf30bf4.png

3c0be0e5f9e750df160dec224404a1a1.png

d1b159742313e20a53aa0c56abdf9708.png

有向图、无向图的算法思路:

b166ff0eec7a5573034f121f0f2ac973.png

邻接矩阵的优缺点:

15c3d24cce072ecaabe6f91b117981f4.png
优点

c3d0d14f72e959841753798bd868ace8.png
缺点

6.4.2邻接表表示法

24722a7f43d3600692491c6308c009c0.png

f9e8991256ccb602eafa1e091fc130c3.png

无向图的邻接表:

61c51fa5c01d5cb3da86236854c01aea.png
存储空间:O(n+2e)。而邻接表的存储空间大小为:O(n^2)

有向图的邻接表:

f60478e55591cc10dccef88dae862e2f.png
存储空间:O(n+e)

d552ff78695e3ecce014bdefef02bfd3.png

41d1d26e61c3d6ff027053d140a405da.png

9d5139f500ed7de0c1854c9ce94495d1.png

cae8d3e60c00085d7a1177324e83a316.png

d7b5c41c27a40ddfaafaf13f95231a30.png

f800ac084ee4866070b3da201db25b3b.png
无向网才有这整个两个部分(∵无向的是对称的)。只有上部分的有向邻接网,只有下部分的是有向逆邻接网。

6.4图的存储结构-邻接表、邻接矩阵:

7074ab4b90dc7621d51e15eafebd1a23.png

2180e163a79c7bd411fb3d553c652895.png

6b57f881fe705780777fad6c65c31641.png

十字链表:

204c3f2a0fbb1e92732a05dc56b48c12.png

e9ddb1af96c956cc244439e8c9262472.png

a11e42dc4802bb2014cd54ae9d42b16c.png

邻接多重表:

7d57c5d243972c4d935da6a617cb65ad.png

45155056011db6e9b57dbd86fbb44f7c.png

6.5图的遍历:

93e463f493821ba9c41e006548b5d899.png

87dce8cbb75b9a2d0c9fc73e445cf9d2.png

深度优先遍历:(一条道走到黑)

7b72acfa692bcfb8d731a1118c637597.png

7294342193e58dfa739865f638efd9ce.png
类似于树的先根遍历

深度优先遍历算法实现:

d2a607424d88a206df5f58761e79de90.png
邻接矩阵进行DFS,只会有一种结果。因为每个结点只有唯一的下标。

19dbf4bbe00a317a0cfd8fc93b15c6b2.png

DFS算法效率分析:

5ca0cf7e4aad73964cf3d53dc5d77d82.png

b7a80484076c25c7e600d4855f6809f4.png

广度优先遍历(BFS):用到队列

da17d3049ae48672948d2c9f7a275c51.png

6a372bf4b36874ec427743d32a033a9a.png

d274b2017299ff48ac60d78c56242c82.png

1a6473ff71e0e00f79b15a9c68e18953.png

44d806aa1999e0379ab73ef4a3eecb53.png

第11周:

14345390d440dd5a24032ccbfa64f5ab.png

6.6图的应用1--6.6.1最小生成树1--生成树及其构造

02b81e478694722c169b9bafa1134938.png
含有n个顶点,n-1条边的图不一定是生成树。

dcaa860691ed7a004b90478b6b53dfa6.png

6.6图的应用2--6.6.1最小生成树2--最小生成树及其典型应用

e4d9b58353260f2d9ad33a326da86438.png

b24e79cc61d894e8c661c6a54ae537b5.png

6.6图的应用3--6.6.1最小生成树3--MST性质

d759dac2eb60fbe4c3e3162d8f89d8bb.png

0656d11d0d2daf43f5f7c579dcb73b4c.png

6.6图的应用4--6.6.1最小生成树4--构造最小生成树1--Prim算法

143bf015cbf55b6919a1f0ca2e3fa19f.png

6.6图的应用5--6.6.1最小生成树5--构造最小生成树2--Kruskal算法

de146d79500c37b5d1a3e361aea0d751.png
只是先把点画出来,然后再依次连上权值最小的边

bac55208b85854b783fd1c1aa5a54c36.png

6.6图的应用6--6.6.2最短路径1--最短路径问题抽象

31c1933c0584c048e0239c696dc69df5.png

9c1d71c6071a94b1e23982500d954a42.png

861f7f99187294dde2eb5d577ba42a40.png

afe61b6c2c6fd6dee2c01d11a318644f.png

e5cadeae3e49c2ea1a5ccf75d26fe4c3.png

6.6图的应用7--6.6.2最短路径2--Dijkstra算法

f3366d5b8419838fc0a14f0c21908132.png

58f7db1ab9941f9e5823684b4b3f327b.png

6aa0f8db737b054a01b84d579912430e.png

6.6图的应用8--6.6.2最短路径3--Floyd算法

6aa0f8db737b054a01b84d579912430e.png

adbf3819e402d511869ef398ceeab7d4.png

图的应用9--6.6.3拓扑排序拓扑排序、关键路径,都是采用的有向无环图。

6466b89999ebe6439822a33f423eaf01.png

0117b5831854d05dd4599d7a10bc0a6c.png

38269b421e8c32d09d069d0a9adfe702.png

39256e5ce7e6e34395d25c61e8c08cd8.png

2dc1bb3cdbef0ba36596246292912d2d.png

fc01ed55b8b3b298dbdd3bae8e43e72f.png

6.6图的应用10--6.6.4关键路径1--用AOE网表示工程计划

7a6a9778d48e731d0e8754c98e18ef63.png

6.6图的应用11--6.6.4关键路径2--求解关键路径

fff8a6de3d23bb9360f64559c4eda1ec.png

e341446e850f28d699bea4dce4272d98.png

32e8054f8a39272bb1b98007f33ddae0.png

e1c65750550a036eef3a96282e860acf.png

d38ff8d25c079c77ec8e36c54be7c284.png

d0268732c8fe06530f42942130caf3de.png

第12周:

4261b3f29d90a1108f8ef4afb2e35629.png

第7章查找1--7.1查找的基本概念

d6d681fc7a1e8e030db483812863dadb.png

28965f3acdc7aebcb3e87f4edd825ea6.png

8247d12f933bca58d3a5fe8eada1e6fd.png

b5d1f0d93ae360851403681af9f29b4a.png

5f544cf1c95d77b5675833fe3682fb99.png

7d77f08c54632a0a6b9bcad62d20504a.png

68fc826d6e995005132e5365134224b8.png

第7章查找2--7.2线性表的查找1--7.2.1顺序查找1--顺序查找算法

a1f05f97a31a06f68d22bf0457dba641.png

ed6533e8b47822486e84c1bc0310da4f.png

7461a93191e07e10988897c152310862.png

加入“监视哨”改进之后,精简代码:

45075c2a6d13a295a0ddd9676a95dfee.png

28338005f34c1c789ca14de6140ddc3f.png

第7章查找3--7.2线性表的查找2--7.2.1顺序查找2--顺序查找算法分析

afc027611c7465e0fcf13dc8a20919ac.png

29bdc46df6f0c17efd4e913df01aeb9d.png

3650dddabf66b95810d0f8139bd191c5.png

df5859ec13b89da052dbc481c1b926c1.png

第7章查找4--7.2线性表的查找3--7.2.2折半查找1--折半查找算法

afb97cda50f690016a7ad7a3653d28d1.png

cfe12b65a2dfb7dcb05508f8d1d98ec3.png

7763523a7a18786a71b64ade64a2d592.png

12e4ee3afab52311f138dcfb8eaad2c7.png

第7章查找5--7.2线性表的查找4--7.2.2折半查找2--折半查找算法分析

a3d5927046443ad3b0d7fe0985c1f964.png

f438694cc837fd9f40b5d1e4904f3f4a.png

b8f63bcc7dedd817965cb1a2fc16726b.png

第7章查找6--7.2线性表的查找5--7.2.3分块查找1--分块查找算法

474533affe121c504a083f7d7b8f724a.png

第7章查找7--7.2线性表的查找6--7.2.3分块查找2--分块查找算法分析及比较

7ce3f8098c83abf0034d22ac601b88a0.png

a71b8efc2cfa09798c3830d02cfae200.png

77fc0e1545a304cebe29cb15a52b1092.png

第7章查找8--7.3树表的查找1--7.3.1二叉排序树1--二叉排序树定义

2c2630af7b22b5fa492b4b72b694f4f3.png

b5f64b77762586135e3b9458ff5dafbb.png
二叉排序树

83297ed8a9c9487ced900b4bdc93d39a.png

第7章查找9--7.3树表的查找2--7.3.1二叉排序树2--二叉排序树查找--递归算法

d9f9540645ddbbce559ed382c8624469.png

d3a4709f7d96f85658403807647c0498.png

dd630bf1dac1da2e4807064ab170124d.png

aa3e25d3341579cbf7c8727f27044e33.png

第7章查找10--7.3树表的查找3--7.3.1二叉排序树3--二叉排序树查找算法分析

7679860bdf8c9adbc337aadec1eb1128.png

462a28ea225c25649e3de4d5fe0ff05e.png

a50c54d062282c6fba7fa91d0a2efbd7.png

第7章查找11--7.3树表的查找4--7.3.1二叉排序树4--二叉排序树的插入和生成

43781bd2855f5d8343117dcc9cc68654.png

2072184f10883076e997defe481d3c14.png

1ff16f1532834ddb112a31b989638175.png

5c63b39360740ccfd81b9c62f0be6a0a.png

第7章查找12--7.3树表的查找5--7.3.1二叉排序树5--二叉排序树的删除

7a9123a96d623f79b22d2295613dbd07.png

fb98fae934fa2208e5c1ff167289a634.png

007080d0e31322639e6f127cf91f6197.png

c11dea0d4ebd97b7b0973d46cbc88586.png

第13周:

8ccd306b2dcc2431ba4040c704b24afb.png

7.3树表的查找6--7.3.2平衡二叉树1--平衡二叉树的定义

21953fdf401d9acf70d181751e153a6c.png
ASL:平均查找长度

746b0de781756a52afe3c2fb8b79f483.png
AVL:平衡二叉树

c051f76bf821b3cb6e738e7a208b3d83.png

7.3树表的查找7--7.3.2平衡二叉树2--平衡调整方法1

2bf96e8c2a173613d3133a47906aace2.png

ad3652f6f8fa88f5ffd93ba3e744e34c.png

7.3树表的查找8--7.3.2平衡二叉树3--平衡调整方法2--四种类型的调整

3cbfdf5e7bcae1a1abed96a8612dd8a8.png

2936bcf3cc42f56c7de0523d0174323b.png

571080b90dda0ce923f3f80bb3416710.png

17a06fbdf28a406e62ad25ec5c561c36.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值