zoukankan      html  css  js  c++  java
  • 4.线性表的合并

     1 
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 #include <malloc.h>
     5 
     6 #define OK   1
     7 #define ERROR  0
     8 #define TRUE 1
     9 #define FALSE 0
    10 
    11 #define ElemType int
    12 #define    MAXSIZE  100         /*此处的宏定义常量表示线性表可能达到的最大长度*/
    13 typedef  struct
    14 
    15     ElemType  elem[MAXSIZE]; /*线性表占用的数组空间*/
    16     int  last;                          /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/
    17 }SeqList;
    18 
    19 void    merge(SeqList *LA,  SeqList *LB,  SeqList *LC)
    20 {
    21     int i,j,k;
    22     i=0;j=0;k=0;
    23     while(i<=LA->last&&j<=LB->last)
    24         if(LA->elem[i]<=LB->elem[j])
    25         {
    26             LC->elem[k]= LA->elem[i];
    27             i++
    28             k++;
    29         }
    30         else
    31         {
    32             LC->elem[k]=LB->elem[j];
    33             j++
    34             k++;
    35           }
    36     while(i<=LA->last)         /*当表LA有剩余元素时,则将表LA余下的元素赋给表LC*/
    37     {
    38         LC->elem[k]= LA->elem[i];
    39         i++
    40         k++;
    41     }
    42     while(j<=LB->last)         /*当表LB有剩余元素时,则将表LB余下的元素赋给表LC*/    
    43     {
    44         LC->elem[k]= LB->elem[j];
    45         j++
    46         k++;
    47     }
    48     LC->last=LA->last+LB->last+1;   /*LC的长度等于两个栈的长度+1*/
    49 }
    50 
    51 
    52 void main()
    53 {
    54     SeqList *la,*lb,*lc;
    55     int r;
    56     int i;
    57     
    58     la=(SeqList*)malloc(sizeof(SeqList));
    59     printf("please input the stack A 's length:");
    60     scanf("%d",&r);
    61     la->last = r-1;
    62     printf("please enter the numbers of stack A:\n");
    63     for(i=0; i<=la->last; i++)
    64     {
    65         scanf("%d",&la->elem[i]);
    66     }
    67     
    68     
    69     lb=(SeqList*)malloc(sizeof(SeqList));
    70     printf("please input the stack B 's length:");
    71     scanf("%d",&r);
    72     lb->last = r-1;
    73     printf("please enter the numbers of stack B:\n");
    74     for(i=0; i<=lb->last; i++)
    75     {
    76         scanf("%d",&lb->elem[i]);
    77     }
    78 
    79     lc=(SeqList*)malloc(sizeof(SeqList));
    80     merge(la,lb,lc);
    81     printf("Join the two stacks is:\n");
    82     for(i=0; i<=lc->last; i++)
    83     {
    84         printf("%d  ",lc->elem[i]);
    85     }
    86 }
    87 
  • 相关阅读:
    tar命令解压jdk.tar.gz包 报错 gzip: stdin: not in gzip format
    CentOS6.5安装完没有网络的解决办法
    UML在需求分析阶段的应用
    UML
    UML在软件开发中各个阶段的作用和意义
    Maven那点事儿(Eclipse版)
    eclipse和myeclipse的下载地址
    div的作用
    c:if标签数据回显判断是否选中
    《Hadoop》对于高级编程Hadoop实现构建企业级安全解决方案
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/1523739.html
Copyright © 2011-2022 走看看