zoukankan      html  css  js  c++  java
  • 线性表算法设计题2.15

    已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。

     C code:

     #include<stdio.h>

    #include<stdlib.h>
    #define LIST_INIT_SIZE 10
    #define LIST_INCREMENT 2
    #define ERROR 0
    #define OK 1
    #define OVERFLOW -1
    #define TRUE 1
    typedef 
    int Status;

    struct LNode
    {
         
    int data;
         LNode 
    *next;
    };
    typedef LNode 
    *LinkList;

    void InitList(LinkList &L)
    {
         L
    =(LinkList)malloc(sizeof(LNode));
         
    if(!L)
           exit(OVERFLOW);
         L
    ->next=NULL;
    }

    void CreateList(LinkList &L,int n)
    {
         
    int i;
         LinkList p,q;
         L
    =(LinkList)malloc(sizeof(LNode));
         L
    ->next=NULL;
         q
    =L;
         printf(
    "Please input %d numbers:\n",n);
         
    for(i=1; i<=n; i++)
         {
              p
    =(LinkList)malloc(sizeof(LNode));
              scanf(
    "%d",&p->data);
              q
    ->next=p;
              q
    =q->next;
            }
            p
    ->next=NULL;
    }

    void PrintList(LinkList L)
    {
         LinkList p;
         p
    =L->next;
         
    while(p)
         {
              printf(
    "%d ",p->data);
              p
    =p->next;
            }
            printf(
    "\n");
        
    }

    LinkList connect(LinkList La,LinkList Lb)
    {
         LinkList Lc,p,q;
         Lc
    =(LinkList)malloc(sizeof(LNode));
         p
    =La->next;
         Lc
    ->next=p;
         q
    =Lb->next;
         
    while(p->next)
         {
              p
    =p->next;
            }
            p
    ->next=q;
            free(La);
            free(Lb);
            
    return Lc;
    }

    int main()
    {
         LinkList La,Lb,Lc;
         CreateList(La,
    8);
         CreateList(Lb,
    4);
         printf(
    "LinkList La: ");
         PrintList(La);
         printf(
    "\n");
         printf(
    "LinkList Lb: ");
         PrintList(Lb);
         printf(
    "\n");
         Lc
    =connect(La,Lb);
         printf(
    "LinkList Lc: ");
         PrintList(Lc);
         
    return 0;
        
    }
  • 相关阅读:
    SAP MM 事务代码MI31之思考
    SAP MM 预留单据里的Base date和Requirement date
    SAP中的BOPF(Business Object Processing Framework)
    四大机器学习编程语言对比:R、Python、MATLAB、Octave
    「压缩」会是机器学习的下一个杀手级应用吗?
    机器翻译论文
    机器翻译汇总
    SAP freelancer夫妻并不难!你也可以!
    自然语言处理(nlp)比计算机视觉(cv)发展缓慢,而且更难!
    2019-9-2-win10-uwp-布局
  • 原文地址:https://www.cnblogs.com/cpoint/p/2031236.html
Copyright © 2011-2022 走看看