网站首页
Veda 原型
互联网资讯
魔法图书馆
晚上八点
订阅
邮件
Veda 原型
成功,唯有积累,没有奇迹
编程语言
PHP服务器脚本
Python程序设计
Java编程语言
C/C++编程语言
前端设计
HTML/HTML 5
CSS层叠样式表
JavaScript
JQuery
Ajax技术
Flex/ActionScript
计算机基础
数据结构
计算机算法
编程思想
面向对象技术
计算机数学与基础
数据之美
数据库技术
Web设计理念
软件架构技术
开源与工具
开源项目与工具
信息安全
搜索引擎优化
网站运维
移动开发
iOS开发
Android开发
程序与生活
IT人家
智力开发
互联网时代
游戏 享受与创造
友情链接
博客导航
专题列表
计算机书籍推荐
关于本站
以图明志
-A wakening of the Trailblazer-
Gundam OO
Unlimited Blade Works
Fate Stay Night
Code Geass
Code Geass
Gundam OOQ Design
Gundam OO
Aeolia Schenberg
Gundam OO
数据结构
[
专题
]
单链表建环,无环链表变有环
设计一个链表建环函数
单链表
环
在 2012年07月06日 那天写的
12,298 views
我们能否给一个无环链表建环呢?其实貌似也不很难,只要找到最后一个结点 tail,让它指向环的入口就行。所以问题分解为:找到环入口点 cur,把最后的指针 tail 指向 cur即可。首先找到环入口,也就是参数 num。定义工作指针 LinkList cur = *L; 让它遍历到 num 的位置。这个时候让第二个工作指针 tail 接替 cur 遍历到末尾。
阅读全文 >>
数据结构
[
专题
]
单链表反转/逆序的第三种方法
建立一个新表来拷贝每个元素
单链表
逆序
在 2012年07月05日 那天写的
15,877 views
昨天介绍了单链表逆序的两种方法,后来我又想到了第三种。我们就是要深入地研究每个细节嘛。这个方法比较简单,这里就直接上函数了。重新建立一个单链表newList,每次将list中的第一个结点放到newList后面。注释比较详细,所以就不具体说了。
阅读全文 >>
数据结构
[
专题
]
用尾插法实现单链表整表创建
与头插法的区别
单链表
尾插法
在 2012年07月05日 那天写的
20,662 views
昨天我们谈到了头插法,可事实上,我们还是可以不这样干,为什么不把新结点都放到最后呢,这才是排队时的正常思维,所谓的先来后到。我们把每次新结点都插在终端结点的后面,这种算法称之为尾插法。与头插法区别下?*L 是头结点,r这里的角色是尾结点,一开始他们是重合的。
阅读全文 >>
数据结构
[
专题
]
用头插法实现单链表整表创建
头插法其实就是从表头开始的插入操作
单链表
头插法
在 2012年07月05日 那天写的
39,169 views
不知道有没有注意到,前面我们在谈“单链表插入操作”的时候,其实我们是用插入操作来完成了单链表的整表创建的。那么创建单链表的过程就是一个动态生成链表的过程。即从“空表”的初始状态起,依次建立各元素结点,并逐个插入链表。其实就是将 p->next 指向结点 (*L)->next,然后再将 结点 (*L)的后继指向p,这个很好理解。
阅读全文 >>
数据结构
[
专题
]
查找某数在单链表中的位置
单链表的元素查找
单链表
查找
在 2012年07月05日 那天写的
20,303 views
这里也同样需要用到“工作指针”。首先声明一个工作指针,并让它指向链表的首元结点 LinkList p=L->next。参数 L 其实就是头指针,L->next 就是头结点。然后用工作指针遍历链表,当 p->data 与传入的查找数 e 相等,返回其位置即可。
阅读全文 >>
数据结构
[
专题
]
单链表的删除某个元素的操作
详尽介绍单链表删除算法
单链表
删除
在 2012年07月04日 那天写的
46,023 views
单链表删除第i个数据结点的算法思路:声明一结点p指向链表第一个结点,初始化j从1开始;当j < i时,就遍历链表,让p的指针向后移动,不断指向下一个结点,j累加 1;若到链表末尾p为空,则说明第i个元素不存在;否则査找成功,将欲删除的结点p->next賦值给q;单链表的删除标准语句p->next=q->next;
阅读全文 >>
数据结构
[
专题
]
单链表的插入与遍历操作
详细讲解单链表的插入过程
单链表
插入
在 2012年07月04日 那天写的
33,508 views
昨天我们说了,单链表如何进行初始化操作。初始化之后,我们就创建了一个单链表了,接下来,我们要往这个链表里填充数据,也就是常说的,插入操作。先把结点s的指针next指向ai+1,即 s->next = p->next. 然后再把ai的指针next指向s,即 p->next = s.
阅读全文 >>
数据结构
[
专题
]
单链表的初始化
初始化函数的设计
单链表
初始化
在 2012年07月04日 那天写的
41,894 views
初始化一个链表需要做什么事情呢?头指针是必须要有的,头结点为了规范化操作,最好也得有。那么第一步就是:创建一个头结点,并且让头指针指向这个头结点。其实头指针也有了。参数 *L 传入的 L其实就是链表的首地址,也就是头指针。接下来也就是在内存开辟一个区域来作为头结点。
阅读全文 >>
数据结构
单链表排序之选择排序
通过这个理解单链表的排序方法
单链表
选择排序
交换
在 2012年05月16日 那天写的
30,572 views
单链表排序是单链表的常见编程任务之一,也是面试中经常出现的题目。单链表排序的关键是交换算法,需要额外考虑。选择排序是比较直观的排序算法之一,这里就使用选择排序实现单链表的排序。如果需要对选择排序复习一下,传送门:算法导论:选择排序的原理与实现。
阅读全文 >>
数据结构
面试题:如何删除单链表的重复结点
使用三个结点完成算法
单链表
重复
删除
在 2012年05月11日 那天写的
27,095 views
写一算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同。解决的思路如下:建立指针p,用于遍历链表;建立指针q,q遍历p后面的结点,并与p数值比较;建立指针r,r保存需要删掉的结点,再把需要删掉的结点的前后结点相接。
阅读全文 >>
数据结构
查找单链表中倒数第n个节点
单链表操作练习
单链表
节点
在 2011年09月15日 那天写的
12,581 views
通过一次遍历找到单链表中倒数第n个节点,链表可能相当大,可使用辅助空间,但是辅助空间的数目必须固定,不能和n有关。单向链表的特点是遍历到末尾后不能反向重数N个节点。因此必须在到达尾部的同时找到倒数第N个节点。不管是顺数n个还是倒数n个,其实都是距离-标尺问题。标尺是一段距离可以用线段的两个端点来衡量,我们能够判断倒数第一个节点,因为他的next==NULL。
阅读全文 >>
数据结构
判断两个链表是否相交的思路
合并链表转化为环问题
单链表
相交
环
在 2010年02月04日 那天写的
9,226 views
给出两个单向链表的头指针,比如h1,h2,判断这两个链表是否相交。(如图,假设两个链表均不带环)最直观的解法就是判断第一个链表中的每个节点是否在第二个链表中。这种方法的时间复杂度是O(Length(h1)*Length(h2))。将两个链表首尾相接,判断相接后的链表是否有环,若有环,则说明两个链表相交。
阅读全文 >>
数据结构
腾讯面试题:快速找到未知长度单链表的中间节点
快慢指针在单链表中很有用处
面试题
单链表
快慢指针
在 2010年02月04日 那天写的
14,218 views
普通的方法很简单,首先遍历一遍单链表以确定单链表的长度L。然后再次从头节点出发循环L/2次找到单链表的中间节点。算法复杂度为O(L+L/2)=O(3L/2)。能否再优化一下这个时间复杂度呢?有一个很巧妙的方法:设置两个指针*search、*mid都指向单链表的头节点。其中* search的移动速度是*mid的2倍。当*search指向末尾节点的时候,mid正好就在中间了。这也是标尺的思想。
阅读全文 >>
数据结构
[
专题
]
结构之美:获取单链表倒数第N个结点值
距离——标尺的方法
单链表
倒数
标尺
在 2010年02月04日 那天写的
11,100 views
这是一个比较常见的面试算法题:一次遍历找链表倒数第n个节点。不管是顺数n个还是倒数n个,其实都是距离-标尺问题。标尺是一段距离可以用线段的两个端点来衡量,我们能够判断倒数第一个节点,因为他的next==NULL。如果我们用两个指针,并保持他们的距离为n,那么当这个线段的右端指向末尾节点时,左端节点就指向倒数第n个节点。
阅读全文 >>
数据结构
[
专题
]
结构之美:判断单链表中是否有环
两种判定方法介绍
单链表
环
判定
在 2010年02月04日 那天写的
16,083 views
有环的定义是,链表的尾节点指向了链接中间的某个节点。比如下图,如果单链表有环,则在遍历时,在通过6之后,会重新回到3,那么我们可以在遍历时使用两个指针,看两个指针是否相等。方法一:使用p、q两个指针,p总是向前走,但q每次都从头开始走,对于每个节点,看p走的步数是否和q一样。
阅读全文 >>
数据结构
[
专题
]
结构之美:单链表逆序
让单链表逆序输出
单链表
逆序
在 2010年02月04日 那天写的
14,209 views
题目:已知单向链表的头结点head,写一个函数把这个链表逆序 (Intel)。这个题目算是考察数据结构的最基础的题目了,下面我们一步步解析这个算法步骤。首先我们创建一个新结点 current p1,并且让它指向首元结点,即 current p1 = L -> next;然后我们创建另外一个新结点 pnext p2,用来保存当前节点的下一个节点,即 pnext p2 = current p1 -> next;
阅读全文 >>
1 / 2
首页
< Prev
1
2
Next >
尾页
页码:
邮件订阅
输入您的邮箱地址,将会收到本站的文章更新信息,赶紧订阅吧。
RSS
Google
鲜果
抓虾
九点
有道
哪吒
QQ邮箱
时不我待
本周热门博文
品读《诫子书》
129 views
更多优秀文章,请移步
精华排行
互联网资讯
陈一舟:创业18年,我领悟的五点心得
384 views
ADS
大音声稀
解决问题90%靠经验,5%靠技术,剩下5%靠运气。
晚八点
新时代严肃阅读指南:文本矩阵简述
662 views
我的微博
ADS
文章分类
专题推荐
其它
捐助本站
计算机书籍推荐
Sponsors
按月归档