1、计算机网络复习1带答案第一章一、 填空题:1数据结构是一门研究 非数值计算 程序设计中计算机的操作对象以及它们之间的 关系 和运算的学科。2.从逻辑上可以把数据结构分为 线性结构 和 非线性结构 。3线性结构的顺序存储结构是一种 随机存取 的存储结构,线性结构的链式存储是一种 顺序存取 的存储结构。4线性结构中元素的关系是 一 对 一 ,树形结构中元素的关系是 一 对 多 ,图形结构中元素的关系是 多 对 多 。5算法的5个重要特征是 有穷性 、 确定性 、 可行性 、 输入 、 输出 。6 算法分析的两个主要方面是: 时间复杂度 和空间复杂度 二、 判断题:1、 顺序存储方式只能用于线性结构
2、、不能用于非线性结构。 2、 基于某种逻辑结构之上的运算,其实现是唯一的。3、 数据元素是数据的最小单位。4、 数据结构是带有结构的数据元素的集合。5、 算法分析的目的是研究算法中的输入和输出的关系三、 分析以下程序段的时间复杂度:四、 (1)i=1;k=100;while(in)k=k+1;i+=10; (2)i=1; j=0;while(i+jj)j+;elsei+;(3)x=n;y=0;While(x=(y+1)*(y+1) y+;(4) for(i=1;i=n;i+) for(j=1;j=i;j+) for(k=1;knext=NULLC.head-next=head D.head!=
3、NULL2. 若在线性表中做以下两个操作:(1) 在最后一个元素之后插入一个元素(2) 删除第一个元素 在(D)存储方式最节省时间:A. 单链表 B. 单循环链表C. 双向链表 D. 带尾指针的单循环链表3. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度为(C)。A. O(log2n) B. O(1)C. O(n) D. O(n2) 4将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是(A)。A n B 2n-1 C 2n D n-15. 在一个单链表中,已知q所指结点是p所指结点的前趋接点,若在q和p之间插入s结点,则执行(C)A. s-nex
4、t=p-next;p-next=s;B. p-next=s-next;s-next=p;C. q-next=s;s-next=p;D. p-next=s;s-next=q;6. 双向链表中,在结点p之后插入结点s,其操作是(D):A. p-next=s;s-prior=p;p-next-prior=s;s-prior=p-nextB. p-next=s;p-next-prior=s;s-prior=p;s-next=p-nextC. s-prior=p;s-next=p-next;p-next=s;p-next-prior=s;D. s-prior=p;s-next=p-next;p-next
5、-prior=s;p-next=s;7 设a1、a2、a3为3个结点,整数0,3,4代表地址,则如下的链式存储结构称为(A)034P0a13a24a30()循环链表 ()单链表 ()双向循环链表 ()双向链表8.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 A (A)110 (B)108 (C)100 (D)120二、 判断题:1. 顺序存储的线性表可以按序号随机存取2. 在顺序表和链表中插入一个元素的时间复杂度均为O(n),因此说它们的执行时间是相等的。3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动将后续各个单元向前移动。4. 向一个长度
6、为n的向量中删除第i个元素(1in)时,需向前移动 n-i 个元素。三、 程序设计题:1.线性表用顺序存储,设计一算法,用尽可能少的辅助空间将顺序表中前m个元素和后n个元素进行整体互换。即将线性表:(a1,a2,.,am,b1,b2,.,bn)改变为(b1,b2,.,bn ,a1,a2,.,am,)kkk.javaimport java.io.*;import java.util.*;public class kkk public static void main (String args) ArrayList a=new ArrayList(); int i; for(i=1;i=26;i-
7、) a.add(i); for(i=0;i=a.size()-1;i+) System.out.print(a.get(i)+ ); System.out.println(); int k,j; for(i=1;i=8;i+) k=a.get(0); for(j=1;j=a.size()-1;j+) a.set(j-1,a.get(j); a.set(a.size()-1,k); for(i=0;i=a.size()-1;i+) System.out.print(a.get(i)+ ); System.out.println(); 2.已知两个单链表A和B分别表示两个集合,其元素递增排列,编写
8、算法求A、B两者的交集C,要求C也递增排列。ooo.javaimport java.util.*;import java.io.*;public class ooo public static void main (String args) LinkedList l1=new LinkedList(); LinkedList l2=new LinkedList(); LinkedList l3=new LinkedList(); int i; Scanner s=new Scanner(System.in); for(i=1;i=8;i+) l1.add(s.nextInt(); for(i=
9、0;i=7;i+) System.out.print(l1.get(i)+ ); System.out.println(); for(i=1;i=6;i+) l2.add(s.nextInt(); for(i=0;i=5;i+) System.out.print(l2.get(i)+ ); System.out.println(); int j=0; i=0; while(i=l1.size()-1 & j=l2.size()-1) if(l1.get(i)l2.get(j) j+; else l3.add(l1.get(i); i+; j+; for(i=0;i=l3.size()-1;i+) System.out.print(l3.get(i)+ ); System.out.println();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1