首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
admin
2013-07-12
83
问题
已知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://www.kaotiyun.com/show/ogxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述一战后德国的赔款问题
试述中国人民废除不平等条约的斗争历程。
《凡尔赛和约》中,战胜国以何种方式处置德国的全部海外殖民地?()。
我国第一部系统的史学理论著作是()。
列宁在()中系统地阐明了马克思主义的国家学说。
在阿拉伯()统治时期,阿拉伯军队曾与当时中国的唐朝军队发生冲突。
1956年,苏共二十大后,匈牙利大党员和群众强烈要求克服个人崇拜,扩大民主,实行经济改革,一些由知识分子、大学生和干部组成的社团组织纷纷成立,其中最有影响者是()。
中古时代实行索贡巡行赋税征收方式的国家是()。
设计一个算法求图的中心点。设v是有向图G的一个顶点,把v的偏心度定义为:MAX{从w到v的最短距离|w属于V(G))如果v是有向图G中具有的最小偏心度的顶点,则称顶点v是G的中心点。
假设二叉树采用二叉链表存储结构存储,试设计一个算法,求出该二叉树中第一条最长的路径长度以及此路径上各结点的值。
随机试题
临床表现为“肾病综合征”的15岁病人,经4周足量泼尼松治疗后,症状明显改善,其肾脏病理表现最可能为
患者,男性,38岁,风心病二尖瓣置换术后2周,发热10天,疑诊人工瓣膜心内膜炎,则最可能的致病菌是
下列哪项不属于高血压病的并发症
对于外墙、门窗洞口的外侧壁、屋檐、勒脚、压檐墙所选用的抹灰砂浆为()。
计算机网络按照(),可以分为局域网、城域网和广域网三类。
首次将会计人员应当遵守职业道德列入法律条款的是()。
某单位因人员紧张,由会计人员兼管出纳工作。该做法违反了( )。
在个人住房贷款中,合同主体变更时,新合同的利率按原合同利率执行。()
成都手工艺品实用美观,久负盛名,主要有()。
我国陆地边界全长()。
最新回复
(
0
)