二叉树的二叉链表存储结构的构造算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基 金项 目 :':llf套 学 院 教 学 研 究 一般项 f I(批 I I:… 、X
YJY 17009) .
作 者简介 :j长静 (1972一), ,倾 f:.俐教授 , 』} ,J 向 :it‘ 机应川技 术 、 代 钟:机数 、 收 稿 日期 :201 8一()2一l0
孩 子 (f_2)
voidCreateBinTree(BinTNode &bt)
{BinTNode ST[M A)<SIZE】, P = NULL;int top= 一 1 .f:char ch;
Bt= NULL;
W hile ((ch : getchar0)!= 、n ) {switch (ch ) {case ( :tOp++:Stack[top】: p f=l:break;
图 1 二 叉树 (a)及 数 据 表 (b) vOidCreateBiTree(BinTree bt) (inti,j:
则表永是结点 f l',jff i,为它 建 一个新 的 - ,ji 把
点作 为左 孩子 (“1 c h=1)或 孩 r (t·h=2)链拨 刊 j
父 结 点 Ll
若 足左括 号 “(”.&【I J{f 的 仆 .…将 这之 lj仃
新 创建 的节 作 为双 亲 点 进 他 . jf 将 I 呲 1.
2018与.05 护 59
\
奠缩程技 巧 雏
、
…
。‘
’
’
’
实 用第一 智慧 密集
.
.
.
、
.
.
}
)
)#end sw itch
}#end w hile
)
2 利 用 二 叉 树 的 扩 展 的 先 序 遍 历 序 列创 建 二 叉 链 表 算 法 I!I
通 常 ,无 论 在 哪 一 种 次 序 的遍 历 序 列 巾 ,都 不 考虑
软 件 研 发 与 应 用
S0|1fWARE DEVELOPMENT&APPLICATION
二 叉 树 的 二 叉 链 表 存 储 结 构 的构 造 算 法
张静 ,邬 恩杰 f公 ,lJ、J 豪 t 彦淖 尔 0l5000) 摘 要 :二 又树逻辑 结构 表示形 式的 多样性 , 盹明二 叉树在 日常生 活及计 算机 科 学技 术 中的 F嘿性 以 不同的形式 表示的二 叉忖的逻辑 结构 作 为输 入数 据序 列建立二 叉树的二 叉链 表存储 结构 算法 也足 多 样 的 描 述 了几 种 不 问形 式 的输 入数 据 建 立 二 叉埘二 叉 链 表 的 算 法 关键词 :二叉埘 ;二叉链 表;算 法;遍 历
表示此 后创 建的节点 将 要f1 为这 个 点 的 /i 孩 j 、 :
若遇到 的是右括 弓’“)”,!』IlJ 『IJ】于
,伐1l1 ,J
左有 孩 f 点 处 完 ,越 栈: 钏 的 IL1 ' l i 1“.”,
则 表 示 以左 孩 卡}!的 f树 处
.J 创 业 的
l 采 用 广 义 表 形 式 表 示 的 二 叉树 二 叉 链 表 的 建 立
算 法 I I 采 J}j广 义衷太永 的 义树 的序列 I1.体 规定 fu1卜:广
义表的表名放在 丧Im, 爪树 的根结点 ,括 II-址 的
左右 予树 :每个结点 的左子树 和彳 子树川 ’ ", :
为彳 子树 的 根 节点 .将 r呲fI}f为 2 11-[:处 .个
wenku.baidu.com
符 ,直到遇 到 “ ’衷 ,J 输 入
钾:法 一f1f也Jtl ·个
栈 Stack保存 双 亲 II, ,f’
续 处 的 址
双 亲 节 点 (即 栈 顶 元 素 ) 的 芹 孩 f (r=I)还 址 ,
仪有右 树没 左予树逗 ;j-4"…tl ̄行略
l Ill(.-)所
示 的 ■ 义树 ,J:成 广 义表 形 式 ls=A (Ij(1)-),(:( k).1)
此算法 的 小思路 址 :依 次从保仃广 义 的I j,: I1
ls rf1输 入 符 (似 定以 : 作 为 点 的flJI_) 址0:州:
不同表,J:的输人数 列缱 ● 义树 义链 1,厂能
的 相 』 算 法 也 j d
}}1二 义树 的定 义 , 义树 I 1 一_信息 … 个数
据 元素和分 圳指 向j 左 、 子树 的 个分 支构成 ,!J!IJ&
示二 义树的链表 c1II 『n每 一个 - 少包括 3个域 :数
树 的逻辑 构。乏 除 J 倒怂{*J法 ,还 l i求 构
示 、集合衷示 、r 义太 ,J:及I"1人 &,J
俐 的
逻辑结构 永 也是{u1此 1.-义链 仃储结 构址 一 坩1 门
最常川1的链式存储结构 ..Jt 小运锋 及j 心JI J的铆: :
现多数足存 义链 储结 构 L实现 的 , 掂 义树 的
域 data干¨在孩 子指 针 J Chil ̄{和l rI‘孩 子指 什 l{(:lf iht,这
种链 表 结 构 称 为二 义链 根 结 点 的 指 针 就 址 俐 的
头 指 针 二 义链 表 r 类 J 定 义 1下 :
typedef char DataType;∥结点数 据类型 typedefstruct Node//-又树 结点类定义 {DataType data;//数据域 struct Node LChild, RChild;/左右孩子链 域 }BinTNode , BinTree;
case ) :top一一:break; case , :f=2:break;
default:p = new BiTNode;P 一>data = ch;p 一> LChild = P一>RChild = NULL;
if(bt:=NULL)bt= p: else{sw itch (f)
{case 1:Stack[top]一>LChild= p:break; case 2:Stack[top]一>RChild= p break;