Changkun's Blog欧长坤的博客

Science and art, life in between.科学与艺术,生活在其间。

  • Home首页
  • Ideas想法
  • Posts文章
  • Tags标签
  • Bio关于
Changkun Ou

Changkun Ou

Human-AI interaction researcher, engineer, and writer.人机交互研究者、工程师、写作者。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, philosophy, and social science.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、哲学与社会科学。

Science and art, life in between.科学与艺术,生活在其间。

276 Blogs博客
165 Tags标签
Changkun's Blog欧长坤的博客

谈谈积分与函数

Published at发布于:: 2013-10-30   |   Reading阅读:: 1 min
Lebesgue积分理论的高明之处就在于它使得在这套理论下的全体可积函数在类似范数的意义下构成了一个完备的赋范线性空间,这套理论的特点极大的方便了微分方程积分方程概率论及函数论的研究使用,比如在使用迭代法解方程的时,虽然每一步的迭代函数都是具有很好性质的函数,但却没有办法保证迭代序列的极限也有同样的性质。但只要迭代序列是$L^{p}$中的基本列,则其极限必定在$L^{p}$中,而这样的极限也就是我们知道的方程的广义解。 在遇到微分方程边值问题时,对于给定的边界条件一般情况下很难再连续可微函数的范围内求解,甚至根本不可能有连续可微解,所以我们熟知的处理方法是给方程加上一个小的扰动项,是的问题变得可解,如果去一列按$p$-方范数收敛到0的扰动项,对应的解序列按$p$-方范数是一个基本列,那这样的极限也是在$L^{p}$中的,这样的极限也是我们所常说的广义解。 而Riemann积分和Riemann-Stieltjes积分理论在$[0,1]$上的可积函数不能在范数 $$ \begin{equation} |f|=\int_{0}^{1}|f(x)|dx \end{equation} $$ 的意义下构成一个完备的赋范线性空间。这就使得我们再处理前面所提到的问题的时候根本就是束手无策。也正是如此,Lebesgue积分理论将Riemann积分和Riemann-Stieltjes积分理论送进了历史博物馆。 但是有一个问题是值得讨论的,Lebesgue这套理论首先将具有某种可加性质的非负集合函数扩张成某个$\sigma$-代数上的可数可加的非负集合函数(测度),然后再这个测度理论的的基础上建立起具有我们所需要的完备性的积分理论。从直观上来看,这似乎是一套为了完善问题而提出的一套理论。 我们脑子里总是会有这样的想法: 一个为了建立我们所需要的完备性积分理论的更为直接的途径似乎应该是将相对于没有我们所需要的完备性积分理论中的全体可积函数组成的空间完备化。这种绕过了测度理论而直接建立起具有我们所需要的完备性的积分理论从某种意义上来说才更像是是一个理论扩充的过程。 再说说广义函数。广义函数说道被提出有这样一段小小的插曲,当时Dirac在量子力学原理一书中提出过这样一个反常函数$\delta(x)$,它被定义在$R$上,并且对于 $$ \begin{equation} \forall x \neq 0 \end{equation} $$ 有 $$ \begin{equation} \delta(x) = 0 \end{equation} $$ 但 $$ \begin{equation} \delta(0)=\infty \end{equation} $$ 而且 $$ \begin{equation} \int_{-\infty}^{\infty}\delta(x)dx=1 \end{equation} $$ 当然了,它并不是我们所定义的传统函数概念的范畴。但是这个反常函数在讨论量子力学中的问题特别是连续谱问题的时候,十分的方便。 John von Neumann曾这样警告说,把理论建立在这样一个虚构的数学概念上是十分危险的。所以他摒弃了这套理论,而把量子力学阉割建立在他自己才建立不久的Helbert空间上无界自伴算子的谱理论上。 John von Neumann成功的实现了量子力学逻辑基础的严格化,但是他没有认识到Dirac这个十分有用的“虚构的数学概念”恰好是重要的而且完全可以建立在严格逻辑基础上的数学概念的一颗数学种子。 早在19世纪,英国工程师Heaviside在创建他的运算微积时就已经大胆地突破传统函数的概念,进行未经严格逻辑验证但却非常方便的数学运算。在研究偏微分方程的时候,人们突破传统的函数概念引进广义解的概念。有Leray关于Navier-Stokes方程组的湍流解,Bochner的弱解,Sovolev,Friedrichs和Krylov等人的广义导数的概念等等等等,这些史实严格地或不严格地突破传统的函数概念在20世纪上半夜已形成汹涌澎湃的浪潮。 可以毫不夸张的说,20世纪的大部分数学都是在物理学家们的“无理取闹”中经过数学家的总结诞生的。在二十世纪中叶的时候,Schwartz总结了前人突破传统函数概念的工作以他和Dieudonne刚刚合作完成的线性拓扑空间为工具建立起了广义函数的理论出色的完成了统一并提炼前人工作使命。

「中国要是有一千个陈景润就不得了了」

Published at发布于:: 2013-10-29   |   Reading阅读:: 1 min
星期一下午毛概课上播了一节课关于邓小平的视频,里面花了很长一段时间讲述陈景润收到邓小平的保护的事情,看得我心里很不是滋味。当时文化大革命,陈景润因为搞哥德巴赫猜想被诬蔑为资产阶级黑线人物,白专道路的典型。说是,陈景润整天研究西方人的东西,死人留下来的东西。说是,证明什么1+1,1+1有什么好证明的,1+1=2天经地义。后来陈景润为了不引起别人的注意,整天关门在那间曾为杂物间的小房间里搞研究,但是四人帮任然整得很厉害,文革之前,陈景润的1+2就已经被证好了(200多页),当时陈锦润为了简化证明步骤,迟迟没有发表,随后的文革时期,好不容易整理出来的手稿被一些傻逼给销毁了。虽然我不是一个经历过文革的人,但是当我读文献感受这段历史的时候真是觉得无比的恶心。外行人领导内行人,问题是,外行人对你做出的成果总是指指点点,否定你的成果,否定你的一切,最后又有谁能真正干事呢?一个比较典型的例子就是曾今和陈景润同时一个寝室的中科院研究员,由于文革的打压,一蹶不振,直到晚年才下乡归来,本来他和陈景润是同等水品,而这时陈景润已经家喻户晓,而他只是一个风烛残年的老人了。 这段历史虽然我只是曾在徐迟的《哥德巴赫猜想》中读过一遍,但是对我的感触还是很深的。这篇报告文学激励了一代中国人,所以我第一遍读这篇文章的时候就感受到了那股强烈的励志的信息。另一方面,隐约读文革时期的一些国内数学工作者写的书籍可以感受到一些文革迫害的蛛丝马迹。夏道行像是一个深受毒害的人,他在他的书中毫不隐晦的写到关于受到四人帮的迫害导致他那本《无穷维上的测度与积分》收到的一个台湾(又好像是香港,记不清了)教授的长达十几页的建议稿还没来得急阅读便被销毁了。 中国的社会现状如今又开始变得无比的浮躁不堪,今天上午在图书馆一直坐到中午一点多,一个人静下来读书确实是件难得的事情,可惜这样的时间是越来越少了。 邓小平说,中国要是有一千个陈景润就不得了了,我愿意做科研工作者的后勤人员。 其实不然,中国要是有一千个邓小平就不得了了,至少,中国不是现在这个样子。

数学建模协会入会笔试题

Published at发布于:: 2013-10-24   |   Reading阅读:: 1 min
这套题是我出的第n套数学考题(高中出过很多题不过都在草稿纸上躺在家里的柜子里)。 下载链接:http://pan.baidu.com/s/1wyNaK 这套题考察了答题人的各项数学修养,涵盖了诸多深刻的数学思想。因此无论是刚进入大学对数学还抱有一丝兴趣的同学,还是已经进入大学的同学想试试对数学各分支的理解,都可以用来试水。 本套试题随着本科数学的逐步深入,会对所有题目有逐步进而更深入的理解。 但试题几乎处处使用了高中及高中以下知识的数学语言描述,因此在读题方面不存在障碍。 本人水平有限,难免出错。 下面是全部题目:

曾勇老师语录

Published at发布于:: 2013-10-07   |   Reading阅读:: 1 min
半个小时前本来说是准备睡觉了,后来搜欧拉语录的时候Google居然给链到曾勇老师了!!! Google你为何这么屌! Google居然搜到了曾勇老师经常说:欧拉有句名言, “当你遇到困惑,回到定义中来”。 不过搜了一段时间,真没搜到欧拉有说过这句。。 但是我一时兴起啊, 于是搜到了曾勇老师的语录!!! 容易看出这是曾勇老师以前在电科时的学生搜集的语录!!! 现在有些话曾勇老师还是依然不离口啊!! 一直觉得曾勇老师超强(虽然每次都以我问的问题是理科数学而拒绝我。。(曾勇老师说他只会解答工科数学。。这能信啊?)),每次在他课上都能听到大大小小的数学思想!!这点超赞!!!!特别喜欢讲思想的老师~~ 好啦我们进入正题…… 1.我不喜欢用希望,我用的是保证…(这个没听过…) 2.听完这次课,保证你们随心所欲的积分(大一高数课上记忆犹新=。=) 3.有的辅导书上开篇就写的“不管三七二十一”,这些专家是自封的专家,不能不管三七二十一哈…(上个月才在概率课上听他说有木有啊=。=) 4.听不懂你下课来问,保证讲到你满意为止…(这句真的超神啊!!!) 5.有的同学说,跟着曾老师没有学到技巧,今天我们就来两个,过过瘾…(大一高数课上记忆犹新=。=) 6.不要问我为什么,我也不知道为什么,技巧嘛,就没有原因,没错就行…(大一高数课上记忆犹新=。=) 7.如果你想看,我可以在上面表演得淋漓尽致…(大一高数课上记忆犹新=。=) 8.人家最高得才考了138,你为什么要考140?(没听过…) 9.考试的时候,心情还是很重要的..(没听过…) 10.心态啊,很重要,不要老想着要考150…(没听过…) 11.这是唯一一个我讲不大自然的题…(大一高数课上记忆犹新=。=) 12.做题啊,姿态要高一点(大一高数课上记忆犹新=。=) 13.(剩最后一个题了,以为要放学了,结果…)勇哥说:最后这个概率题,我们用8种解法…(上个月才在概率课上听他说有木有啊=。=) 14.唉,实在没办法,选择题就蒙一个走人嘛…(没听过…) 15.这是有史以来考得最狠的一个题,05年我在这里出答案的时候,居然在讲台上想了2分钟…(没听过…但是这句话真的碉堡了啊有木有!!!) 16.要是有哪个题我想了2分钟,你们就不要做了,两个字:不考…(没听过…但是这句话真的碉堡了啊有木有!!!) 17.(讲到模拟题4线代部分)有一年数学三的考试题就跟我出的这个模拟题几乎一样。当然,他改了一点点(下面笑翻了),为了突出他不是全部抄袭我的,他当然要改…(上个月才在概率课上听他说有木有啊,虽然和这句话有出入,但是课上是说一道概率题=。=) 18.我出了200多个题才出现一个原题,没什么的哈,低调低调…(没听过…) 19.有的同学就要问了,那今年有没有原题?没有的哈…(没听过…) 20.有的同学给我发了这么一封邮件:曾老师,我为什么不能考清华?(没听过…) 21.有的同学给我说:前4套模拟题,我都坚持下来了,到了第5套,终于崩溃了…(没听过…) 22.(一脸淫笑地)嘿嘿,做我的模拟题,那是很少有人不崩溃的哈…(没听过…) 23.有同学问我:曾老师,你说我是不是不行了…我说:其实,你还是行的!(下面早就笑翻球了…)(没听过…) 24.级数这一章,是我唯一讲不大自然的一章…(没听过…) 25.考清华,一定要慎重慎重再慎重哈…(没听过…) 26.有的同学问我数学怎么学?天,你让我怎么回答?答案就是使劲学…(大一高数课上记忆犹新=。=) 27.实在不行,你就一个萝卜一个坑,一个一个点嘛,离散的,总是点得完的。只要有这种精神,数学一定学的好(没听过…) 28.有的同学就是想突出他自己水平高。不要再自欺欺人了…(没听过…) 29.现在排除了两个选项了,剩下两个选项,蒙嘛,概率都已经50%了,怕什么?(没听过…) 30.当初同学把这个解法一写,顿时我就无语了…(没听过…) 31.(一脸猥琐地)这是高三的一个月考题…(没听过…) 32.基础差?基础差的你还没见过…(没听过…) 33.有同学问我secx*tanx怎么积分,问这个问题就过分了哈…(没听过…) 34.不要问我这种题,两个字:不考…(没听过…) 35.二项分布的期望?不知道?就"nP"嘛…老师,n=3是不是主流哦?(没听过…) 36.做题做不动了怎么办?重新读题…(没听过…) 37.矩阵倒向量,向量倒矩阵,倒来倒去就有名堂…(没听过…) 38.我的题,真的是不偏不怪…(没听过…) 39.你们要这么想:这一年,我做了这么多,再难的都做过,我他妈的怕谁?(没听过…) 40.做完15套,没崩溃估计也不远了,好事情,崩溃了就对了嘛…(没听过…) 41.实在不行,我就给你一个个点。。。点。。。。。点。。。(没听过…) 42.不要想当然。如果真有这种定理,人家早写在书上了,轮不到你我(大一高数课上记忆犹新=。=) 43.函数复杂起来,可以复杂的超乎你的想象(大一高数课上记忆犹新=。=) 44.微积分,就是求求导,积积分嘛。(有一点出入…) 45.你先出牌你永远是输家。。。 (没听过…)

Fourier变换应用小记

Published at发布于:: 2013-10-07   |   Reading阅读:: 4 min
大整数问题一直很头疼,采用乘法原理的结果复杂度为$O(n^{2})$,最近看傅里叶变换有尝试用傅里叶变换加以改进。 设 $$ a=(a_{N-1}a_{N-2}…a_{1}a_{0}){10}=a{N-1}10^{N-1}+…+a_{0}10^{0}] [b=(b_{N-1}b_{N-2}…b_{1}b_{0}){10}=b{N-1}10^{N-1}+…+b_{0}10^{0} $$ 两个式子的乘积 $$ c = ab = c_{2N-2}10^{2N-2}+c_{2N-3}10^{2N-3}+…+c_{1}10^{1}+c_{0}10^{0} $$ 其中 $$ c_{k}=\sum_{i+j=k}a_{i}b_{j},(i=0,…,N-1) $$ 这种算法的时间复杂度为$O(n^{2})$。 逆天的是,${c_{k}}$居然逆天的等于${a_{k}}$和${b_{k}}$点的卷积。我们知道,卷积可以通过傅里叶变换的方式转化为普通乘法(函数卷积的傅里叶变换是函数傅里叶变换的乘积)。 于是,我们有: (1)求${a_{i}}$和${b_{j}}$的傅里叶变换(离散)${A_{i}}$和${B_{j}}$ (2)${A_{i}}$和${B_{j}}$逐项相乘得到${C_{k}}$ (3)对${C_{k}}$求傅里叶逆变换,得到${c_{k}}$ (4)进位,出结果 对复向量${x_{N-1},…,x_{1},x_{0}}$,离散傅里叶变换为: $$ X_{k}=\sum_{n=0}^{N-1}x_{n}e^{\frac{-2i\pi nk}{N}},(k=0,…,N-1) $$ 逆变换公式为: $$ x_{k}=\frac{1}{N}\sum_{k=0}^{N-1}X_{k}e^{\frac{-2i\pi kn}{N}},(n=0,…,N-1) $$ 例: 三位数($N=3$)$a=456,b=987$,求c=ab。 结果为:c=450072。共 6 位数字,$N$扩展到$2^3 = 8$。 $$ { a_7, a_6, a_5, a_4, a_3, a_2, a_1, a_0 } = { 0, 0, 0, 0, 0, 4, 5, 6 } $$ $$ { b_7, b_6, b_5, b_4, b_3, b_2, b_1, b_0 } = { 0, 0, 0, 0, 0, 9, 8, 7 } $$
Read More阅读更多 »

模版链队实现

Published at发布于:: 2013-10-05   |   Reading阅读:: 3 min
队列作为允许在前段删除和后端插入得线性表,和栈类似,是一种操作受限制得线性。进行插入操作的端称之为队尾,进行删除操作的端称之为队头。队列中没有元素时,称之为空队列。尽管操作受到限制,但是仍然具有使用价值,如可以利用队列结构编写消息队列处理消息,利用队列结构编写内存池时可以将可用内存区块加入一个队列中等待使用,等等。 这次实现的模版链队本质上仍是链表,这次的队列没有首节点,队列中全部元素均为队列中的成员。代码中注释了一个迭代器,是测试代码时候写的。 p.s.可以考虑重载[]来实现队列中的数据访问。。当然这是后话了。。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 // // Queue.
Read More阅读更多 »

模版链栈实现

Published at发布于:: 2013-10-04   |   Reading阅读:: 3 min
栈只具备入栈和出栈的性质,实现起来较为简单,其本质还是链表,只不过限制了任意节点的访问权限,因此栈不具备迭代器的功能。代码中注释了一个迭代器,是测试代码时写的,迭代效果略有Bug,访问数据会多访问到一个,但不影响栈本身的功能,无视就好~ p.s. 可以考虑重载[]来实现栈中的数据访问。。当然这是后话了。。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 // // Stack.
Read More阅读更多 »

从圆锥体积谈起

Published at发布于:: 2013-10-03   |   Reading阅读:: 2 min
本文希望通过下面这个简单易懂的例子来阐述数学家们为何要将流形理论定义的晦涩以及流形背后的深刻含义,文中一些关键性的概念附上了wikipedia链接,方便快速回忆起它们。 学过定积分的同志们都知道,定积分可以求旋转体的体积,比如圆锥。 学过多元积分的同志们也都知道,求圆锥体积的时候可以用截面圆面积沿圆锥高度变化函数的积分。 到底什么是体积,为什么这两种求法的结果总是相同的?这里博主就介绍一下一般形式对体积计算。 首先,我们需要理解流形的概念。流形是可以类比到$n$维欧式空间的拓扑结构,流形上的每一个点都可以映射到欧式空间中。 我们通常意义上的建立空间直角坐标系,就是将一个几何体一一映射(双射)到了一个三维的欧式空间。把问题转化到欧式空间中是因为欧式空间有很多优良的性质,具体就不阐述了,可以在这个链接中查到相关知识,如果觉得不过瘾可以切换到英文版查看更为详尽的描述。 早期数学家们关心将点集映射到欧式空间中表现出的各种性质,后来数学家们才注意到,研究他们之间的映射会从深层面来揭示这些优良性质产生的原因。 我们知道,直角坐标到柱坐标之间的转化有公式(本质是映射$\phi$): $$ \begin{equation} \rho = \sqrt{x^{2}+y^{2}} \end{equation} $$ $$ \begin{equation} \theta = \begin{cases} 0 & \mbox{if x = 0 and y = 0}\ \arcsin\left( \frac{y}{\rho} \right) & \mbox{if x > 0 or x = 0}\ -\arcsin\left( \frac{y}{\rho} \right) + \pi & \mbox{if x < 0} \end{cases} \end{equation} $$ $$ \begin{equation} h=z \end{equation} $$ 这个映射在三维欧式空间中几乎处处无穷可微,它的逆映射$\phi ^{-1}$可以更加方便的计算各阶微分: $$ \begin{equation} x = \rho \cos\theta,y = \rho \sin\theta,z = h \end{equation} $$
Read More阅读更多 »

《乔布斯》观后感

Published at发布于:: 2013-10-02   |   Reading阅读:: 1 min
美国立国至今二百余年,The chief business of america is business,商业繁荣至今,有种东西居功至伟,也就是所谓的“Entrepreneurship”。影片中的乔布斯偏激、疯狂、固执、冷静、不顾一切、毅然决然。他专注于自己的事业,对自己努力的一切有着近乎宗教式的狂热,他执着于冒险,疯狂开拓,无所畏惧。乔布斯如今已经成了一个象征,这个改变了世界的科技天才,和某种意义上的精神领袖,因为乔布斯设计理念的哲学和美学已经深深影响了一批人,这种影响小到审美品位大到创意理念和生活哲学,这种影响是深远的,也正是因为乔布斯,设计变得无比重要。 流传这样一种说法,上帝在人间投掷了三个苹果,第一个诱惑了夏娃,第二个砸醒了牛顿,而第三个则留给了乔布斯。只有乔布斯,才能在让苹果在97年时不足14美元的股票上涨到现在,成为一个奇迹,成就了历史上绝无仅有的拯救行动;让创新的灵感得以体现在产品上,在细节上偏执的追求;拥有过人的营销本领,只要他弄懂了一个东西,都能以最简单的方式介绍给普通人听;在追求梦想和事业的鼎盛中奔驰,他的奇迹是没有人可以复制的、没有人能超越的。 天时、地利、人和。乔布斯身处崛起的时代,加之乔布斯的创新天分是无人能及的,他大胆的设想、与众不同的管理,缔造了苹果神话。影片极力表现了一个偏执狂人造就企业神话,乔布斯违背了所有管理手册的教条,违反了身为一个管理者应该真诚、体贴、谦虚、放权、在乎员工的感觉和用户的需求。但是,乔布斯总能深刻的洞察人性,即便他无可理喻到在电梯内看员工不顺眼就将其开除。在回归苹果公司后更加展露,回归苹果后的乔布斯重整了董事会,重新将苹果走向巅峰。 乔布斯在斯坦福大学毕业典礼上这么说道:你的时间有限,所以不要为别人而活,不要被教条所限,不要活在别人的观念里,不要让别人的意见左右自己内心的声音。最重要的是,勇敢地去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。牛顿亦云:站在巨人的肩膀上。我们时常告诫自己应该怎么做或者不该怎么做,不要走别人的错路。这并不意味着我们每个人都必须成为一个个墨守成规,有原则的人。 最后,苹果的“Think Different”或许正描述了乔布斯的一身: Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can’t do is ignore them.
Read More阅读更多 »

反转单链表

Published at发布于:: 2013-09-24   |   Reading阅读:: 1 min
今天听说反转单链表,于是博主就自己想了想。 顾名思义,反转单链表,就是让一个单链表反向。 反转一个单链表,最容易想到的思路就是: 方法一 牺牲空间。 此方法没什么可说的,直接创建一个新的链表,倒序将上一个链表的各个节点拷贝到新链表中,并释放原链表。值得注意的是,如果直接拷贝各个节点,显然复杂度较高,因为拷贝最后一个节点时需要先指向最后一个节点,而指向最后一个节点是需要话时间的。因此可以先开辟一个lenth()长度的数组,将各节点先存入数组中,再使用反序索引来创建新的反转单链表。 接下来容易想到的方法则是使用三个节点指针来进行操作。 ##方法二 先让两个节点指针p和q配合使两个节点的指向反向,同时用current记录剩下的链表。博主以前曾实现过一个模版链表,因此就在此基础上继续完善该链表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 template <class T> void Chain<T>::reversal() { ChainNode *p = head; ChainNode *q = head->next; ChainNode *current; head->next = NULL; while(q){ current = q->next; // current用于纪录剩余的链表 q->next = p; p = q; q = current; } head = p; // 记得修改head,否则按head输出仅输出了最后一个节点 } 继续思考,发现其实可以不用这么麻烦,如果从第2个节点开始,依次将节点插入到头节点之后,最后将第一个节点插到表尾。
Read More阅读更多 »
17 18 19 20 21 22 23 24 25
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%