首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
用类C语言写出求广义表深度以及复制广义表的算法。
用类C语言写出求广义表深度以及复制广义表的算法。
admin
2017-04-28
46
问题
用类C语言写出求广义表深度以及复制广义表的算法。
选项
答案
定义一个广义表类型如下: typedef struct node{ int flag; union{ elemType data; struct node *pointer; }; struct node *link; }BSNode,*BSLinkList; //求广义表深度 int genlistDepth(BSLinkList list}{ /*list存放广义链表的首地址,该算法返回广义链表的深度*/ BSLinkList stackl[M],p; /*stackl用来记录子表的起始位置*/ /*stack2用来记录子表当前的深度,depth用来表示当前所求子表的深度,maxdep用来记录当前已 求出的那些子表的最大深度,stackl和stack2共用一个栈顶指针*/ int stack2 [M], depth=0,maxdep=0, top=—1; p=list—>pointer, /*将p指针指向广义链表的第一个元素所在的链接点*/ if(p!=NULL){ dof while(p!=NULL){ stackl[++top]=p; /t记录当前子表的起始位置*/ stack2[-- top]=depth; /*记录当前所求子表的深度*/ if (p—>flag==1){ /*当前链接点元素是予表*/ depth++; /*当前层次数加1*/ p=p—>pointer; /*移动到下一层*/ } else p=NULL; } if (maxdep<depth){ maxdep=depth; /*记录当前已求得的最大层次数*/ } p=stackl[top]; /*退回到上一层,移动到下一个元素,查看是否有子表*/ depth=stack2(top--]; p=p—>link; }(p! =NULL&&top! =—1); } return maxdep+1; } BSL/nkList copyBSList (BSLinkList lista) { BSLinkList listb=NULL; if {lista !=NULL) { listb=(BSLinkList) malloc ( sizeof <BSNode)) ; listb—>flaq=lista—>flag; if (lista—>flag==0) listl:—>clata=lista—>data; else listb—>pointer=copyBSList (lista—>pointer) ; listb—>link—copyBSList(lista—>link); return listb; }
解析
转载请注明原文地址:https://kaotiyun.com/show/WWRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
结合诸条约内容简述中国社会沦为半殖民地半封建社会的过程。
水门事件
关于斯巴达的论述错误的是()。
兵家是专门研究军事理论和实践的学派,主要代表人物是战国中期齐国的(),他所著的兵书是一部杰出的古代兵书。
与前两次工业革命相比,第三次科技革命在能源结构上的主要变化是()
下列哪个文件标志着“文化大革命”的发起?()
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
世界近代史上,世界经济发展经历了两次大的飞跃,即第一次工业革命和第二次工业革命。阅读下面两段材料,回答问题:材料一工业革命的主角——蒸汽机,是经验和科学相结合的产物。科学对工业革命的发展做出重大贡献。工场手工业的生产,主要依靠以人力和经
加尔文教传播到法国后,其信仰者被称为()。
1925年10月签订《洛迦诺公约》后,法国外长白里安认为:“我国的安全比以往任何时候都更有保障了。”对此说法不正确的一项是()。
随机试题
关于现代农业基本特征的说法,正确的有()。
《先妣事略》是如何通过叙事抒情的。
散文《谏逐客书》最鲜明的写作特色是()
腹腔穿刺抽出血性液体的疾病是
变色酸2R(Chromotrope2R)-亮绿染色法可把髓鞘染成
就脉动过程而言,至者为就脉动过程而言,去者为
下列函数中,在点(0,0)处连续的函数是()。
导游人员在引导旅游者欣赏自然和人文景观时应该提醒旅游者注意观赏的距离和位置,其中包括旅游者与欣赏对象之间的()。
体育教学目标的功能有()。
“数量积等于零的两个向量平行”,这个命题是______(填“真”或“假”)命题.
最新回复
(
0
)