题目内容
(请给出正确答案)
[主观题]
设计一个算法,将结点数据域依次是a1,a2,…,an(n≥0)的一个单链表的所有结点逆置,即第一个结点的数据域变为an,
设计一个算法,将结点数据域依次是a1,a2,…,an(n≥0)的一个单链表的所有结点逆置,即第一个结点的数据域变为an,最后一个结点的数据域变为a1。
查看答案
如果结果不匹配,请 联系老师 获取答案
设计一个算法,将结点数据域依次是a1,a2,…,an(n≥0)的一个单链表的所有结点逆置,即第一个结点的数据域变为an,最后一个结点的数据域变为a1。
已知p是指向单向循环链表最后一个结点的指针,试编写只包含一个循环的算法,将线性表(a1,a2,…,an-1,an)改造为(a1,a2,…,an-1,an,an-1,…,a2,a1)。【北京理工大学2005十四、1(5分)】
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下: