国开期末考试《数据结构与算法》机考试题及答案(第10套)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国开期末考试《数据结构与算法》机考试题及答案(第10套)
一、选择题(每题2分,共20分)
1. 数据的逻辑结构是指()。

A. 数据元素之间的逻辑关系
B. 数据元素本身的特点
C. 数据的存储结构
D. 数据的加工处理过程
答案:
A. 数据元素之间的逻辑关系
二、填空题(每题2分,共20分)
2. 在栈中,最后进入的数据元素总是首先被()。

答案:
弹出
三、判断题(每题2分,共20分)
3. 线性表是一种线性结构。

()
答案:
正确
四、简答题(每题10分,共30分)
4. 简述顺序存储结构和链式存储结构的特点。

答案:
顺序存储结构:数据元素在物理位置上连续存储,可以通过下标快速访问。

五、编程题(共50分)
5. 编写一个函数,实现单链表的排序。

(20分)
答案:
class ListNode:
def __init__(self, value):
self.value = value
self.next = None
def sort_linked_list(head):
if not head or not head.next:
return head
pivot = head.value
less = less_head = ListNode(None) equal = equal_head = ListNode(None) greater = greater_head = ListNode(None)
current = head
while current:
if current.value < pivot:
less.next = current
less = less.next
elif current.value == pivot:
equal.next = current
equal = equal.next
else:
greater.next = current
greater = greater.next
current = current.next
less.next = less_head.next
equal.next = equal_head.next greater.next = greater_head.next
return merge_sorted_lists(sort_linked_list(less_head.next),
sort_linked_list(equal_head.next), sort_linked_list(greater_head.next))
def merge_sorted_lists(l1, l2, l3):
dummy = ListNode(None)
current = dummy
while l1 and l2 and l3:
if l1.value < l2.value and l1.value < l3.value:
current.next = l1
l1 = l1.next
elif l2.value < l1.value and l2.value < l3.value:
current.next = l2
l2 = l2.next
else:
current.next = l3
l3 = l3.next
current = current.next
if l1:
current.next = l1 elif l2:
current.next = l2 else:
current.next = l3 return dummy.next。

相关文档
最新文档