复习(10)实验的代码

学而忘言是学习的最高境界,却是产出的最劣手段,所学的东西都在心里,说不出来?
也许记忆是最棒的资本,但是诉诸载体也未尝不是一个好的方法

用最后开始复习一下这个学期做过的实验的代码


image.png

每次访问数组太过麻烦,并且不好处理(在小根堆的时候),所以用所有图中的数据对这个结构体中的对象进行初始化


image.png

element是用来记录并查集的
image.png

感觉在编程的时候一个很难受的点就是始终不明白怎么样才能将对象和变量嵌进一个使用方式中去,其实就是要有模板意识,不管是什么样子的变量或是变量都用模板t来替代,出现问题再解决


image.png

小根堆是储存在一个数组中的
image.png

总是从当前可以查询的第一个父子关系开始,并且i是可以变化的点,如果父母比当前的点还要大的话,就要改变,将父母的值赋给i,然后将i上移,对应的父母也要上移,
image.png

删除是从上至下,所以根据i设定child,插入是从下到上,所以是根据i设定parent
image.png

image.png

首先将所有的点和对应的代价用来初始化带权边,然后将其压入,依次取出,并且用带权边的两个顶点来建立并查集,用带权边(实际上是带权边的权重)来初始化小根堆,然后将最小值依次取出,如果已经处在同一个并查集,那么就是加进去会成为环,补补课,否则挑选进入,并且进行合并并查集,然后将对应的结果加到权重之总和上


image.png

同样还是带权边的声明
image.png

声明数组来储存
image.png

将带权边中的权重插进去

将对应的边置为对应的空值

image.png

迪杰斯特拉算法是用来求取一个点到其他所有点之间的最短距离。
首先要记录各个点到当前这个点所最近的距离,这个距离是通过赋值实现的,对于s来说,一开始的最短距离就是自己
同时还要建立一个是否被用过的数组,每次遍历就是从所有的距离中选出一个最小的,并且将其标记为已经用过,然后用这个最小距离来对所有的两点之间进行初始化,复杂度差不多是n2
image.png

迭代器的结构跟具体的类还是不一样的,可以使用共通的结构,也可以不是
image.png

也就是如果这个点所形成的边不是想象中的话,那么就要继续遍历,如果是的话,那么移动到下面一个,然后进行赋值和返回
image.png

image.png

再复习一下关于迭代器的内容,那就是必须是拥有跟原类结构相通的数据成员,并且能够进行相应的遍历和访问(本质上是同一地址),然后在类内定义返回类型为迭代器指针的函数,并且用相应的顶点来进行初始化,初始化之后返回

调用形式一般有两种,一个是通过设定end和start,实现数据的访问(设定成比较指针也可以),一个是通过next的访问直接返回下一个对应节点和地址指针的数值
一种方式是直接引用,因为最终我们是对值操作,只要能够返回值就可以了,对于这个题目来说,迭代器就是一种选择


image.png

image.png

image.png

image.png

image.png

邻接链表,通过若干个链表的数组组合而成
image.png

总体来说,其实一个邻接链表使用单点带权就可以表示了,即——每一个点的内容都是从顶点到当前点的距离以及对应的每个点的数字,通过传导进去的带权边,分别取定对应的起始点和终结点,并且将两个点对应地赋进去一个邻接链表中,
image.png

最好的方法就是,保持传导的变量的形式,在每一次函数的开始都对对应的变量进行转换
邻接链表可以说是从链表数组和带权边派生过来的
image.png

也就是说,对应的节点的元素本身就是从一开始记录的,不存在第一个节点就是顶点的情况
任何一个值都有可能是具体的数据结构之一
image.png

只要是压入的肯定是没有访问的,压入之后就要访问,从访问取出来的肯定已经被压入过了
image.png

构造函数,初始化函数,是最常用的函数
image.png

共通之处

区分弗洛伊德和迪杰斯特拉算法——前者是用所有的点对所有的两点重复调整n遍,后者是设定一个取用值,用每个点对一个点到另外一个点的距离最小值进行调整
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

一种选择排序

选择排序——每次选取当前插入点,再选取应插入点,若是不能插入,则直接退出,若是可以,就退换
冒泡排序——依次将最大的元素冒上去,若是有一次失败则退出
插入排序——依次进行将一个点插入到前方的序列中的操作
image.png

image.png

image.png

image.png

众所周知pairnode是一个字典对,而散列表是对于字典对来进行操作的

image.png

image.png

哈希表,也就是链表,是为了实现字典对的存储


image.png

image.png

image.png

删除的具体操作就是将删除节点之后的一个节点删除,并将这个节点移动过来(删除后面节点的过程又涉及到删除的重复,原则是,首先移动的地方不能比自己的起始桶还往前,还有往后移动到新的空值处,)
image.png

找到了一个当时为了糊弄助教特意弄出来的一个函数,哈哈哈哈说多了都是泪
image.png

最后说一下及时终止的选择排序的关键,其实就是找到选择排序什么时候终止,其实所有的终止都只有有序这一个条件,对于冒泡,就是始终没有交换(那就是每一次交换看看都有没有发生),而选择排序是没有交换这个过程的,所以就要用到每次比较,由于选择排序是选定了一个终点之后从最开始到最后选取最大值,因此在这个过程中,当前已经选定的最大值跟下一个遍历点要是具有不大于的关系,就肯定不是有序的(对于最大值的选取来说,对于一个有序数组,每次遍历都会改变一次才是对的,如果没有发生改变那就是无序的,虽然不用交换max,但是至少说明下一次交换是有必要进行的了,否则的话在右边已经排好序的基础上,这时的节点如果是经过每次比较都要交换的结果产出的,那就没有必要交换(理解:如果一个点从左到右遍历,按照取较大者的原则每次都要涉及到交换的话,必然就是有序的,只要有一次没交换,那就是前面的元素大于后面的元素,就不接受,这时必须要通过排序手段来使其有序,而这只是一个过程,而不是决定之后执行到底的一个))
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,928评论 2 89
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,097评论 1 32
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,240评论 11 349
  • 多少事是假装不来的,如果爱你眼神里就流露出来了,如果关心你,行动就表现出来了,如果在乎你,小细节就透漏出来了,如果...
    青石桥旁阅读 125评论 0 0
  • 青龙抬头二月春, 携子踏春小径行, 樱花不堪寒风扰, 蜂立花枝蕊难存。 应是柳绿丛林翠, 无奈微风起扬尘, 天公莫...
    Limber007阅读 491评论 0 2