永发信息网

跪求C语言 数剧结构 编程

答案:2  悬赏:0  手机版
解决时间 2021-06-05 10:34
已知指针ha和hb分别指向两个单链表的头结点,且头结点的数据域中存放链表的长度,试写一算法将这两个链表连接在一起(即令其中一个表的首无结点连在另一个表的最后一个结点之后),hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算.请分析你的算法的时间复杂度
最佳答案
#include <stdio.h>
#include <stdlib.h>

typedef struct _list {
int val;
struct _list* next;
} *node, list;


node Insert( node head, node pos, int val )
{
node tmp;
tmp = ( node )malloc( sizeof( list ) );
tmp->val = val;
tmp->next = pos ? pos->next : head->next;
if ( pos ) {
pos->next = tmp;
} else {
head->next = tmp;
}
return tmp;
}

void Create( node head, int* beg, int* end )
{
node t;
head->next = t = NULL;
head->val = end - beg;
while ( beg != end ) {
t = Insert( head, t, *beg++ );
}
}

void Tie( node ha, node hb, node hc )
{
int i;
node tmp = ha;

for ( i = 0; i < ha->val; ++i ) {
tmp = tmp->next;
}
tmp->next = hb->next;
hc->val = ha->val + hb->val;
hc->next = ha->next;
ha->val = hb->val = 0;
ha->next = hb->next = NULL;
}

void Print( char* msg, node head )
{
printf( msg );
head = head->next;
while ( head ) {
printf( "%d ", head->val );
head = head->next;
}
putchar( '\n' );
}


int main()
{
int a[] = { 1,3,5,7,9 };
int b[] = { 2,4,6,8,10 };
list ha, hb, hc;
Create( &ha, a, a + 5 );
Create( &hb, b, b + 5 );
Print( "ha:", &ha );
Print( "hb:", &hb );
Tie( &ha, &hb, &hc );
Print( "hc:", &hc );
getchar();
return 0;
}
全部回答

void f(NODE *ha,NODE *hb,NODE *hc)

{

NODE *p;

long i=0;

char flag=0;

p=ha;

if (ha->data>hb->data)

{ p=hb; flag=1;}

i=p->data;

while (i>0){i--;p=p->next;}

hc=(NODE *)malloc(sizeof(NODE));

if (flag){p->next=ha->next;hc->next=hb->next;hc->data=hb->data+ha->data;}else{p->next=hb->next;hc->next=ha->next;hc->data=ha->data+hb->data;}

return ;

}

时间复杂度为MIN(N,M) 线性。

其中N和M分别是ha和hb的长度

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦幻西游真的有这么好玩么?
学习生活上的问题(好生进)
如何加强英语学习的进度啊
曦与是不是同一字,可是为什么打不出来?
濮阳县濮阳王利西医诊所在哪里啊,我有事要去
有郑州职业技术学院交流的网络平台吗?
NDF 我的角色为什么和别人组不了队?官方网谁
日本樱花快速漂胡剂哪有卖的
我是九零的尾巴想占卜下爱情
请求高端玩家发战士最强力的PVE天赋?相对比
外来人员综合保险卡丢失在什么地方办理
仙剑4外传回到起点什么时候能出啊
夏邑县商丘夏邑县第二初级中学地址在哪,我要
乐亭县唐山汇友饭店(毛庄乡卫生院东)这个地址
什么的是麦粒肿,为什么会这样?
推荐资讯
吉大的化学研究生好就业吗?
甲流的症狀是什麽?
电脑左下方(开始)旁的显示桌面不见了,怎么
QQ飞车网通区为什么我61级不可以考驾照!
请问陈伟伟这个名字起什么英文名字?
我想今年春节结婚要准备什么?
夜晚会干吗?
为什么我的QQ空间里没有植物那一项
怎樣學好理科?
喜欢一人、 嗳一个人、 分别是什么感觉?
方城县南阳裕州宾馆这个地址怎么能查询到,着
武陟县焦作申通快递(004乡道)这个地址在什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?