数据结构第二章线性表习题
更新时间:2023-10-13 02:23:01 阅读量: 综合文库 文档下载
02 线性表
【单选题】
1. 下列不属线性结构特点的是(C)。 A、有且仅有一个数据元素无直接前驱 B、有且仅有一个数据元素无直接后继
C、有且仅有一个数据元素既无直接前驱又无直接后继
D、大多数据元素有且仅有一个直接前驱,有且仅有一个直接后继
2. 线性表是具有n个(C)的有限序列。
A、信息项 B、字符 C、数据元素 D、数据项
3. 线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A、正确 B、不正确
4. 在顺序表中,数据元素e1与其直接后继e2在存储位置上(A)。 A、必相邻 B、必不相邻 C、可相邻可不相邻
5. 在长为n的顺序表中删除一个数据元素,平均需移动(D)个数据元素。 A、n B、n-1 C、n/2 D、(n-1)/2
6. 在长为n的顺序表中插入一个数据元素,平均需移动(C)个数据元素。 A、n B、n-1 C、n/2 D、(n-1)/2
7. 单链表是一种(B)存取的存储结构 A、随机 B、顺序 C、索引 D、连续
8. 以下属于顺序存储结构优点的是(A)。
A、存储密度大 B、插入运算方便 C、删除运算方便 D、可方便地用于各种逻辑结构的存储表示
9. 以下属单链表优点的是(C)。
A、顺序存取 B、插入操作能在O(1)的时间复杂度上完成 C、插入时不需移动数据元素 D、节省存储空间
10.在单链表中,数据元素e1与其直接后继e2在存储位置上(C)。 A、必相邻 B、必不相邻 C、可相邻可不相邻
11.以下属单链表与循环链表区别的是(B)。
A、结点结构不同 B、查找结点的算法中,循环结束条件不同 C、对存储空间连续性的要求不同 D、对是否包含头结点的要求不同
12.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A)存储方式最节省时间。
A、顺序表 B、双链表 C、带头结点的双向循环链表 D、单循环链表
13.若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(D)存储方式最节省运算时间。
A、单链表 B、仅有头指针的单循环链表 C、双链表 D、仅有尾指针的单循环链表
14.若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用(D)存储方式最节省运算时间。
A、单链表 B、单循环链表 C、带尾指针的单循环链表 D、带头结点的双循环链表
【计算题】
1. 设有单链表如图,试画出执行如下程序段后,各指针变量及单链表的示意图。 ⑴ p=L; while(p){ p.data=p.data*2; p=p.next; }
参考答案:
⑵
s=new OnelinkNode(8); p=L; while(p.next) p=p.next; s.next=p.next; p.next=s;
参考答案:
【算法题】
1. 设有结点类OnelinkNode和单链表类OnelinkList如下: public class OnelinkNode{ public int data;
public OnelinkNode next; public OnelinkNode(int x){ data=x; next=null; }
}//OnelinkNode
public class OnelinkList{
private OnelinkNode head; //单链表的头指针 public OnelinkList(){ head=new OnelinkNode(0); } }
⑴试在OnelinkList类中添加方法public int deleteall(int x),用于删除单链表中所有值为x的数据元素,并返回所删除的数据元素的总个数; 参考答案:
public int deleteall(int x){ p=head; count=0;
while(p.next!=null){
if (p.next.data==x){ p.next=p.next.next; count++; }else{ p=p.next; } }//while return count; }//deleteall
⑵试在OnelinkList类中添加方法public void selectsort(),用于按直接选择排序法对单链表中的数据元素进行排序。 参考答案:
public void selectsort(){ p=head;
while(p.next!=null){ min=p; q=p.next; do{
if (q.data if(min!=p){temp=min.data; min.data=p.data; p.data=temp;} p=p.next; }//while }//selectsort ⑶试在OnelinkList类中添加方法public void reverse(),用于对单链表进行就地逆置。 分析:⑴将头结点与表中其它结点断开,独自构成一新空表; ⑵将原表中结点逐一取下并插入新表,每次插入均在头结点之后进行。 参考答案: public void reverse ( ){ r=head.next; //r指向剩余链表 head.next=null; //断开单链表的头结点 while (r!=null){ p=r; //p指向当前待处理结点 r=r.next; p.next=head.next; head.next=p; //将当前待处理结点插入在头结点之后 }//while }//reverse 2.设有顺序表类SqList如下: public class SqList { private Object[] table; private int len; public SqList(int maxsize){ table=new Object[maxsize]; len=0; } } 并有结点类OnelinkNode和单链表类OnelinkList如下: public class OnelinkNode{ public Object data; public OnelinkNode next; public OnelinkNode(Object obj){ data=obj; next=null; } public OnelinkNode(){ this(null); } }//OnelinkNode public class OnelinkList{ private OnelinkNode head; //单链表的头指针 public OnelinkList(){ head=new OnelinkNode(); } } 试在OnelinkList类中添加构造函数public OnelinkList(SqList L)。 参考答案: 先在SqList类中添加下列方法: public Object get(int i){ if (i<0||i>len) return null; else return table[i]; } public int length(){ return len; } 然后在OnelinkList中添加如下构造函数: public OnelinkList(SqList L){ head=new OnelinkNode(); for(i=L.length()-1;i>=0;i--){ s=new OnelinkNode(L.get(i)); s.next=head.next; head.next=s; }//for }//OnelinkList 3. 设有循环链表如下,试定义相应的循环链表类,并在其中添加一个可以将链表中指针方向取反的方法。 参考答案: public class OnelinkNode{ public Object data; public OnelinkNode next; public OnelinkNode(Object obj){ data=obj; next=null; } public OnelinkNode(){ this(null); } }//OnelinkNode
正在阅读:
数据结构第二章线性表习题10-13
智能仪器第二部分复习题12-08
写作教学05-31
经典老歌歌词课件03-08
仓库管理人员考试试题「含答案」03-27
PhotoShop理论题库04-06
高三高考誓师大会的演讲稿05-08
努力造就一支懂农业爱农村爱农民的工作队伍 - 学习十九大报告心得体会09-24
就业扶贫车间建设情况汇报02-22
2017超星尔雅科学通史期末考试答案05-18
- 计算机试题
- 【2012天津卷高考满分作文】鱼心人不知
- 教育心理学历年真题及答案--浙江教师资格考试
- 20180327-第六届“中金所杯”全国大学生金融知识大赛参考题库
- 洪林兴达煤矿2018年度水情水害预测预报
- 基本要道讲义
- 机电设备安装试运行异常现象分析与对策
- 《有机化学》复习资料-李月明
- 非常可乐非常MC2--非常可乐广告策划提案 - 图文
- 2011中考数学真题解析4 - 科学记数法(含答案)
- 企业人力资源管理师三级07- 09年真题及答案
- 基于单片机的光控自动窗帘控制系统设计说明书1 - 图文
- 20160802神华九江输煤皮带机安装方案001
- (共53套)新人教版一生物必修2(全册)教案汇总 word打印版
- 2014行政管理学总复习
- 中国银监会关于加强地方政府融资平台贷款风险监管的指导意见
- 民宿酒店核心竞争与研究
- 游园活动谜语大全2012
- 河南省天一大联考2016届高三英语5月阶段性测试试题(六)(A卷)
- 小型超市管理系统毕业论文详细设计4
- 数据结构
- 线性
- 习题
- 第二章
- 公司管理制度(新).doc000
- 对EB病毒相关淋巴组织增殖性疾病的理解和认识
- 基于微训平台的高职院校青年实验教师培训研究
- 对数的大小比较讲议
- 关于印发《马鞍山市住宅区地下停车位管理办法(试行)》的通知
- 关于印发《安徽省专业技术资格评审实施细则(试行)》的通知
- 建筑施工复习题
- The very hungry caterpillar 教案
- 甘薯收获机械研究进展 - 图文
- 什川初级中学九年级二班班规
- 盆栽红掌的栽培管理措施
- 留学回国人员在京落户程序及流程
- 财务会计试题
- 浅谈我国社区服务存在的问题及对策研究
- 2017-2018人教部编版(2016)四年级语文上册期中质量检测(含答案)
- 四语下期中试卷(附答案)
- 2018高中历史 专题五 现代中国的文化与科技 5.3 科学技术的发展与成就45分钟作业 人民版必修3 - 图文
- 实验一 Word文档的基本操作和排版(一)
- 《电力拖动自动控制系统--运动控制系统》实验指导书(自编) - 14166532406334
- 变速器的设计计算