两个数据结构问题,求算法1.假设有一个带头结点的单链表h,它的元素内容按递增有序排列。试设计一个算法,将其中内容相同的元素只保留一个,其余的全部删除,要求算法的时间效率
1.假设有一个带头结点的单链表h,它的元素内容按递增有序排列。试设计一个算法,将其中内容相同的元素只保留一个,其余的全部删除,要求算法的时间效率尽可能的高。2.已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试设计一个算法将这两个链表连接在一起(即一个链表在另一个链表之后),假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成。
第一题
void deleteSameNode(ListNode *h)
{
ListNode *cur = h->next;
ListNode *tmp;
while (cur->next != NULL)
{
if (cur->data == cur->next->data)
{
tmp = cur->next;
cur->next = cur->next->next;
free(tmp);
}
else
cur = cur->next;
}
}
第二题
void mergeList(ListNode *hc, ListNode *ha, ListNode *hb, int m, int n)
{
ListNode *cur;
int i = 0;
if (m < n)
{
for (i = 0, cur = ha; cur->next != NULL; cur = cur->next);
cur->next = hb->next;
hc->next = ha->next;
}
else
{
for (i = 0, cur = hb; cur->next != NULL; cur = cur->next);
cur->next = ha->next;
hc->next = hb->next;
}
free(ha);
free(hb);
}
用尺规作图的方法(作垂线可用三角板)找出符合下列要求的点.(保留作图痕迹)(1)在图1中的直线m上 2020-05-13 …
将正方形ABCD折叠,使顶点A与CD边上的点M重合,折痕交AD于E,交BC于F,边AB折叠后与BC 2020-05-17 …
(本题14分)在平面直角坐标系中,已知抛物线经过、、三点.⑴求抛物线的解析式;⑵若点M为第三象限内 2020-06-11 …
已知一次函数y=(2m+3)x+m-1.(1)若函数图象经过原点.求m的值;(2)若函数图象与y轴 2020-06-28 …
如图已知椭圆(a>b>0)的离心率为,且过点A(0,1).(1)求椭圆的方程;(2)过点A作两条互 2020-07-13 …
已知函数y1=ax2+bx,y2=ax+b(ab≠0).在同一平面直角坐标系中.(1)若函数y1的 2020-07-18 …
如图直线l:y=kx+2-4k(k为实数).(1)求证:不论k为任何实数,直线l都过定点M,并求点 2020-07-22 …
已知动圆C与圆C1:(x-2)2+y2=1外切.又与直线l:x=-1相切(1)求动圆C的圆心的轨迹 2020-07-31 …
已知椭圆E:(a>b>0)的离心率,且点在椭圆E上.(Ⅰ)求椭圆E的方程;(Ⅱ)直线l与椭圆E交于 2020-07-31 …
如图所示,河两岸相互平行,相距为d,水流速度为v1,船相对水的速度为v2.船从岸边A点出发,船头始终 2020-10-30 …