首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
admin
2013-07-12
55
问题
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
选项
答案
void OneToThree(LinkList&L,&la,&ld,&lo){ /*L是无头结点的单链表第一个结点的指针,链表中的数据域存放字符。本算法将链表L分解成含有英文字母字符、数字字符和其它字符的带头结点的三个循环链表*/ la:(LinkList)malloc(sizeof(LNode)); //建立三个链表的头结点 ld=(LinkList)malloc(sizeof(LNode)) ; lo=(LinkList)malloc(sizeof(LNode)); la->next=la; //置三个循环链表为空表 ld->next=ld; lo->next=lo; while(L!=NULL){ //分解原链表 r=L;L=L->next; //L指向待处理结点的后继 if(r->data>=’a’&&r->data<=’z’|| r->data>=’A’&&r->data<=’z’){ r->next=la->next; //处理字母字符 la->next=r; } else if(r->data>=’0’&&r->data<=’9’){ r->.next=ld->next; //处理数字字符 ld->next=r; } else { r->next=lo->next; //处理其它符号 lo->next=r; } } }
解析
将一个结点数据域为字符的单链表,分解成含有字母字符、数字字符和其它字符的三个循环链表,首先要构造分别含有这三类字符的表头结点。然后从原链表第一个结点开始,根据结点数据域是字母字符、数字字符和其它字符而分别插入到三个链表之一的链表。注意:不要因结点插入新建链表而使原链表断链。另外,题目并未要求链表有序,插入采用“头插法”,每次插入的结点均成为所插入链表的第一元素的结点即可。
转载请注明原文地址:https://kaotiyun.com/show/ogxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列不属于清统治者加强文化专制和思想控制的是()
1861年俄国废除农奴制改革的主要作用是()。①造成资本的集中②扩大了国内市场③提供了自由劳动力④强化了中央集权
评介萨缪尔.亨廷顿的“文明冲突论”。(北京大学1996年世界通史真题)
两次德国统一的历史条件比较
1911年,美国工程师()出版《科学管理原理》一书,奠定了科学管理的理论基础,被誉为“科学管理之父”。
杜鲁门提出“对日本的占领不能重蹈德国的覆辙”,这一主张付诸实行后()。
隋在统一全国的过程中,平定江南是一个重要的部分,帮助完成岭南一带平定的是()
罗马帝国疆域扩张到顶点是在()统治时期。
1543年,发表了解剖学专著《人体结构》的是()。
随机试题
依照《劳动合同法》的规定,劳动者与用人单位建立劳动关系的起算时间是()
_____、______、______、_________、__________、埃及、肯尼亚等国采取总统制。
在Windows7中,控制面板不能完成创建文件的工作。()
一碳单位是合成下列哪些物质所需要的原料
基金份额登记确认是()的职责之一。
2015年6月月底,全国光伏发电累计装机容量达到3578万千瓦,其中,光伏电站3007万千瓦,分布式光伏571万千瓦。全国各省(区、市)中,累计光伏发电装机容量超过100万千瓦的分别为甘肃578万千瓦、新疆570万千瓦、青海470万千瓦、内蒙古403万千瓦
根据下面材料回答下列题。根据上述统计表,以下说法不正确的是()。
2021年3月11日,第十三届全国人民代表大会第四次会议审议通过了《全国人民代表大会关于完善香港特别行政区选举制度的决定》。该决定明确了完善香港特别行政区选举制度的基本原则。下列属于该基本原则的有()。①坚持一个中国原则
在窗体上画一个命令按钮和一个标签,其名称分别为Commandl和Labell,然后编写如下事件过程PrirateSubCommandl_Click()Dimarr(10)Fori=6To10
Whatkindofjobsseemstobeinshortsupply?
最新回复
(
0
)