当前位置: 答题翼 > 问答 > 大学专科 > 正文
目录: 标题| 题干| 答案| 搜索| 相关
问题

在一个非递减有序的线性表中 插入一个值为x的元素 使插入后的线性表仍为非递减有序表 用带头结点的单链表编


在一个非递减有序的线性表中,插入一个值为x的元素,使插入后的线性表仍为非递减有序表,用带头结点的单链表编写算法。

算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下:

参考答案
您可能感兴趣的试题
  • 长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需

  • 长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需

  • 已知一个顺序表中的元素按值非递减有序排列 试写一算法 删除表中值相同的多余元素。

  • 有一个单链表 其结点的元素值以非递减有序排列 编写一个函数删除该单链表中余的元素值相同的结点

  • 在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()A.O(1)B.O(n)

  • 在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂性为______。A.O(1)B.O(n)C.