内容发布更新时间 : 2024/11/16 22:47:24星期一 下面是文章的全部内容请认真阅读。
《数据结构》期中测试
班级: 姓名: 学号:
一、 填空题:
1、 在数据结构中,从逻辑上可以把数据结构分为集合、线性结构、树形结构和图状结构,
其中树形结构和图状结构合称为非线性结构。数据结构被形式地定义为二元组(D,S),其中D是数据元素的有限集合,S是D上关系的有限集合。 2、 算法的五个重要特性是有穷性、确定性、可行性、输入和输出。
3、 一个顺序表第一个元素的存储地址是100,每个元素的长度为3,则第6个元素的地址
是115。在顺序表中插入或删除一个元素,需要平均移动(n+1)/2个元素,具体移动的元素个数与插入或删除元素的位置有关。顺序表中逻辑上相邻的元素的物理位置相邻。单链表中逻辑上相邻的元素的物理位置不一定相邻。单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的指针域指示。在单链表中设置头结点的作用是使第一个结点与其他结点的操作统一。
4、 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平
均比较(n+1)/2个结点。在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是O(n)。给定有n个元素的线性表,建立一个有序单链表的时间复杂度是O(n2)。
5、 已知L是无表头结点的非空单链表,且指针p所指结点既不是首元结点,也不是尾元结
点,试从下列提供的答案中选择合适的语句序列。 在p所指结点后插入s所指结点:4、1。
在p所指结点前插入s所指结点:7、11、8、4、1。 在表首插入s所指结点:5、12。
在表尾插入s所指结点:11、9、1、6。 1) p->next=s;
2) p->next=p->next->next; 3) p->next=s->next; 4) s->next=p->next; 5) s->next=L; 6) s->next=NULL; 7) q=p;
8) while(p->next!=q) p=p->next; 9) while(p->next!=NULL) p=p->next; 10) p=q; 11) p=L; 12) L=s; 13) L=p;
6、 已知指针p所指结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句
序列。
在p所指结点后插入s所指结点的语句序列是7、12、6、3。 在p所指结点前插入s所指结点的语句序列是8、13、5、4。
删除p所指结点的直接后继结点的语句序列是15、p->next=q->next、q->next->prior=p、18。???
删除p所指结点的直接前驱结点的语句序列是16、p->prior=q->prior、q->prior->next=p、18。???
删除p所指结点的语句序列是1、2、17。 1) p->next=p->next->next; 2) p->prior=p->prior->prior; 3) p->next=s; 4) p->prior=s; 5) s->next=p; 6) s->prior=p; 7) s->next=p->next; 8) s->prior=p->prior; 9) p->prior->next=p->next; 10) p->prior->next=p; 11) p->next->prior=p; 12) p->next->prior=s; 13) p->prior->next=s; 14) p->next->prior=p->prior; 15) q=p->next; 16) q=p->prior; 17) free(p); 18) free(q);
7、 简述以下算法的功能。
Status algo1(Stack S){ int i,n,A[255];