首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
用单链表保存m个整数,结点的结构为:[dlata][link],且|data|≤n(n为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中data的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表head
用单链表保存m个整数,结点的结构为:[dlata][link],且|data|≤n(n为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中data的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表head
admin
2015-12-30
66
问题
用单链表保存m个整数,结点的结构为:[dlata][link],且|data|≤n(n为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中data的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表head如下:
则删除结点后的head为:
要求:
根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
选项
答案
算法实现 void func (PNODE h,int n) {PNODE p=h,r, int *q,m; q=(int *)malloc(sizeof(int)*(n十1));//申请n+1个位置的辅助空间 for(int i=0,i<n+1,i++)//数组元素初值置0 *(q+i)=0; while(p->link!=NULL) {m=p->link->data>0?p->link->data:-p->link->data; if(*(q+m)==0)//判断该结点的data是否己出现过 {*(q+m)=1,//首次出现 p=p->link;//保留 } else//重复出现 {r=p->link;//删除 P->link=r->fink free(r); }
解析
转载请注明原文地址:https://kaotiyun.com/show/TIRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
第二次世界大战后,美、苏之间出现的第一次冷战高潮是()。
关于大陆人民大规模达到台湾的第一次明确的记录出现在()。
下列关于清朝设置台湾府的叙述,不正确的是()。
希腊化时代控制希腊半岛的是()。
关于希腊古风时代和古典时代的叙述不正确的是()。
关于《新学伪经考》、《孔子改制考》的说法正确的是()。①都是利用古书古人宣传西方资产阶级政治的学说,向西方寻求救国真理②借用儒家学说和孔子的偶像进行宣传,可减少来自封建顽固势力的阻挠和压力③是维新变法的重要理论依据④动摇了封建统治的思想基
“改土归流”政策的根本目的是()。
论述新石器时代及其文化类型。
1936年,张学良和杨虎城发动的西安事变()。①是一次具有爱国意义的兵变②民族矛盾激化的结果③检验了中国社会各阶级的抗日态度④促成了抗日民族统一战线初步形成
某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下:假定int类型数据用32位补码表示,程序
随机试题
回转工作台简单分度时,按定数不同而有()计算公式。
按照反应器的结构类型,可把反应器分成釜式、管式、塔式、固定床和流化床。()
设∑为平面x+y+z=1,第一卦限中的部分,则对面积的曲面积分=____________
再燃是指
人际技能关心的是()。
长栏与破栏(厦门大学2007年研)
1957年10月苏联成功发射第一颗人造卫星,揭开了人类历史由地球迈向太空的第一页。此后短短半个世纪里,人类的外空探索活动突飞猛进,取得了辉煌的成就。人类不仅成功登陆月球,而且还将研究的触手伸向火星等更为遥远的星球。截止到2006年底,环绕地球飞行的各类人造
中国近代史上中国人民第一次大规模的反侵略武装斗争是()
WhathappenedonSunday?
A、Knowingstockmarket.B、Havingadefiniteaim.C、Havingadequatemoney.D、Havingrealisticexpectations.B题干询问明智投资的第一条方针。对话中男士
最新回复
(
0
)