问答题

已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。

答案: 正确答案:(1)算法的基本设计思想:首先要查找最小值结点。将其移到链表最前面,实质上是将该结点从链表上摘下(不是删除并回...
题目列表

你可能感兴趣的试题

问答题

线性表(a 1 ,a 2 ,a 3 ,…,a n )中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容: (1)用最少的时间在表中查找数值为x的元素。 (2)若找到将其与后继元素位置相交换。 (3)若找不到将其插入表中并使表中元素仍递增有序。

答案: 正确答案:(1)顺序存储的线性表递增有序,可以顺序查找,也可折半查找。题目要求“用最少的时间在表中查找数值为x的元素”,...
问答题

设有集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、集合B和集合C用链式存储结构表示。

答案: 正确答案:typedef struct node{ int data; struct node*next; }lklis...
微信扫码免费搜题