数据结构问题 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试数据结构问题已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 14:35:16
数据结构问题 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试数据结构问题已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m

数据结构问题 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试数据结构问题已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m
数据结构问题 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试
数据结构问题
已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算.请分析你的算法的时间复杂度.
已有下图算法,求补写完整可执行代码(完整的能运行的程序)

数据结构问题 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试数据结构问题已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m
实现如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
\x09int data;
\x09Node *next;
} *LinkList;


void InitList(LinkList & l)//初始化链表
{
    l = (Node*) malloc (sizeof(Node));
\x09l->next = NULL;
}


void AddList(LinkList & l,int x)//插入元素
{
   LinkList pa = l;
   while(pa->next)
   {
\x09  pa = pa->next;
   }


   LinkList temp = (LinkList)malloc(sizeof(Node));
   temp->data = x;
   temp->next = NULL;


   pa->next = temp;
}


void DelList(LinkList & l,int x)//删除链表元素
{
\x09LinkList pa = l;
\x09if(pa->next == NULL)
\x09\x09return;
\x09while(pa->next->next)
\x09{
\x09\x09pa = pa->next;
\x09}


\x09LinkList temp = pa->next;
\x09pa->next = NULL;
\x09free(temp);
}


void PrintList(LinkList &l)//打印链表元素
{
\x09LinkList pa = l->next;
\x09int count = 0;
\x09while(pa)
\x09{
\x09\x09printf("%d\t",pa->data);
\x09\x09count++;
\x09\x09if(count % 5 == 0)
\x09\x09\x09printf("\n");


\x09\x09pa=pa->next;


\x09}
\x09if(count % 5 != 0)
\x09\x09printf("\n");
}


void MergeList_L(LinkList &ha,LinkList &hb,LinkList &hc)//合并链表
{
\x09LinkList pa,pb;
\x09pa = ha;
\x09pb = hb;
\x09while(pa->next && pb->next)
\x09{
\x09\x09pa = pa->next;
\x09\x09pb = pb->next;
\x09}
\x09if(!pa->next)
\x09{
\x09\x09hc = hb;
\x09\x09while(pb->next) pb = pb->next;
\x09\x09pb->next = ha->next;
\x09}
\x09else
\x09{
\x09\x09hc = ha;
\x09\x09while(pa->next) pa = pa->next;
\x09\x09pa->next = hb->next;
\x09}
}
int main()
{
\x09LinkList ha,hb,hc;
\x09InitList(ha);
\x09InitList(hb);
\x09InitList(hc);
\x09for(int i = 0; i < 10; i++)
\x09\x09AddList(ha,i);
\x09printf("链表ha的元素有:\n");
\x09PrintList(ha);


\x09for(int i = 30; i < 35;i++)
\x09\x09AddList(hb,i);
\x09printf("链表hb的元素有:\n");
    PrintList(hb);


\x09//连接操作
\x09MergeList_L(ha,hb,hc);
\x09printf("合并后链表hc的元素有:\n");
\x09PrintList(hc);




}
测试如下:

数据结构问题 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n.试数据结构问题已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m 已知指针ha和hb分别指向两个单链表的头结点,编写一个算法,将ha和hb连接在一起,即令其中一个表的首结点即令其中一个表的首结点连接在另一个表的最后一个结点之后,hc指向连接后的单链表. 数据结构与算法,结点的表达式,设P为指向双向循环链表中某个结点的指针,P所指向的结点的两个指针域分别用P-->prior和P-->next表示,则同样表示P指针所指向结点的表达式可以是( )没有选项, 数据结构的问题,将指针封装在一个结构中,现在这个指针要加上一个数(指向下一个)有什么好的办法? 高三化学题等体积、pH都为3的酸HA和HB分别与足量的锌反应,HA放出的氢气多,说明酸性:HA>HB答案是HA 两根小木棒a和b,他们的正投影的长分别为la和lb,若la大于lb,则他们的长度ha和hb满足什么?ha大于hb b:ha小于hb c:ha大于或等于hb d:不能确定 化学关于酸性强弱比较的问题有两种一元弱酸的钠盐溶液,其物质的量浓度相等,现将这两分别充入适量CO2,一种生成了碳酸氢钠和HA,一种生成了碳酸钠和HB,比较HA和HB的酸性?我知道要用强酸置 已知a、b、c、分别为△ABC三边长,对应高分别为ha、hb 、hc、若a=4,b=5,c=6,ha:hb:hc= 已知两种弱酸的酸性HA>HB 以下正确的是:A:0.1mol/L HA 和 0.3mol/L HA 与0.1mol/LNaOH等体积混合 前者已知两种弱酸的酸性HA>HB 以下正确的是:A:0.1mol/L HA 和 0.3mol/L HA 与0.1mol/LNaOH等体积混合 前者氢 已知a、b、c是三角形ABC三边长,对应高分别为ha、hb、hc,且a:b:c=4:5:6,则ha:hb:hc是多少? 头指针和尾指针的疑问发现一件很不爽的事情队列的头指针和尾指针到底指向什么?严蔚敏的书是q.front指向队头第一个元素,q.rear指向队尾最后一个元素的下一位置然而其他数据结构的书却说q 将两份浓度和体积相等NaOH溶液分别用PH=2的HA溶液和PH=2的HB溶液中和,得甲乙两种溶液,消耗的HA溶液和HB溶液的体积分别为V1和V2,若V1HB 乙>甲B HA>HB 乙 1.在Rt△ABC中,已知AB=根号2,AC=2倍根号2,∠A=90°,AD⊥BC于D,试求(1)AD:BC (2)BD:DC 2.已知△ABC的三边分别为a=2cm,b=30mm,c=4cm,三边上的高分别为ha、hb、hc,求ha:hb:hc的值(注意ha和hb和hc的abc是在h下的 (已知HA,HB均为弱酸)在NaA NaB的混合溶液中为什么HA和HB的浓度会大于氢离子的浓度?这好像不能直接判断 已知一个整型数组a[10],要求定义2个指向整型变量的指针变量max,min,使得它们分别指向数组的最大数和最小数. 已知有三种酸HA、HB、HC有如下数据,则三种酸的相对强弱顺序为已知有三种酸HA、HB、HC,它们的浓度分别为0.1、1、1,电离出的C(H+)分别为0.003、0.003、0.1则三种酸的相对强弱顺序为( )A.HA>H 数据结构p->next 含义问题p是个指针,p->next表示p指针所指向结点的指针域. 我想问为什么不是 *p->next 来表示呢 ?p只是个指针(地址)啊, 既然结点的指针域 ,结点为什么不是*p 而是p来表示 数据结构(c语言版)的问题:一个单向链表,有一个头结点,那么头指针指向?一个单向链表,有一个头结点,后面依次是第1、第2、……第n个结点.那么头指针指向第1个结点还是指向头结点?