基于顺序表长度计算的相关结点定位算法
来源:互联网 发布:用java打印乘法表 编辑:程序博客网 时间:2024/05/01 06:12
[问题]:
基于顺序表长度计算的相关定位算法
要定位两条链表中交叉结点的位置:E(4)
[lenLink1] [Common]
(Link1)L(9)->A(8)-> B(7) ->C(6) ->D(5)-> E(4) ->G(3)->T(2)->W(1)->P(0)
/
(Link2) F(8)->O(7)->H(6) ->Q(5) ->
[lenLink2]
刚开始想到遍历两个链表,把两个链表分别装入两个不同的栈空间中,然后同步出栈:
比较两个栈中栈顶元素,
若相同,则两个栈的栈顶元素出栈
若不同,则交叉结点是“之前”记录的栈顶元素(第一次时考虑没交叉结点的情况)
虽然这种复杂度较链表逆序的复杂度要低一些,但是最简单的办法是如下:
利用链表长度,计算出长度的差值,然后使得两个链表的较长的那个链表的指针先走差值个元素。
然后两条链表的指针齐步走,判断走到的结点是否为同一结点,“是”则定位到了该交叉结点,“否”则继续走。
如果最后都走到链表结尾,依然不同,则判断出两天链表不相交,没有交叉结点。
[解答]
输出:
(1)CreateCrossLinkList(link1, link2, 5, 5, 4); 时 是示例的情况 :
Cross Node:4
(2)CreateCrossLinkList(link1, link2, 0, 5, 4); 时 是不相交的情况:
There is no cross node
- 基于顺序表长度计算的相关结点定位算法
- 顺序表的相关算法
- 计算带头结点单链表的长度 计算单链表的长度,实现单链表的打印
- 假设在长度大于1的循环链表中,即无头结点也无头指针,s为指向链表中的某个结点的指针,试编写算法删除结点s的前驱结点
- 顺序链表 带头结点的
- 卫星定位授时相关的时间算法
- 计算二叉树中所有结点数的算法
- 计算二叉树中分支结点数的算法
- 计算二叉树中双分支结点数的算法
- 计算二叉树中叶子结点数的算法
- poj2253 用dijkstra计算最短路径的两个结点的最短长度
- 基于WiFi的电子标签定位算法
- 基于rssi的三点定位算法
- 数据结构中顺序表的相关查找算法
- 数据结构---平均查找长度ASL的相关计算技巧
- 基于链表:输入若干整数以单链表形式存储起来,然后计算单链表中结点的个数
- java中计算坐标的相关算法
- 【初级算法剖析】计算字符串需要的哈夫曼长度
- 一些谈话的技巧.绝非奇技淫巧
- AOP技术基础
- 标准数组--向量(2)
- C++赋值运算符重载
- 利用"线段树"相关算法解决有关数组的问题[待续]
- 基于顺序表长度计算的相关结点定位算法
- Excel会计应学35招秘技
- ASP.Net:基于窗体的身份验证
- C++中有关volatile关键字的作用--阻止编译器将其变量优化缓存到寄存器(和线程相关)(转自百度)
- C#常用正则表达式
- java中的同步与异步
- “无形参函数”利用汇编代码传递变量地址 [有点意思]
- 基于OPENGL的3D引擎-G3D 介绍
- Microsoft make things complicated