合并A,B为线性表C(表C用顺序表实现)

设有线性表A=(a1,a2,…,am),B=(b1,b2,…,bn)。试编写一个合并A,B为线性表C的算法,使得 a1, b1,a2, b2,…, am ,bm, bm+1,…,bn   

 

当m<=n时:C= a1, b1,a2, b2,…, am ,bm, bm+1,…,bn 


 当m>n时: C=a1, b1,a2, b2,…, an ,bn, an+1,…,am

#include 
   
   
    
    
#include 
    
    
     
     
#define MAXSIZE 60

typedef struct
{
    int a[MAXSIZE];
    int size;
} sequencelist;


/*初始化顺序表*/
void init(sequencelist *A,sequencelist *B,sequencelist *C)
{
    A->size=0;
    B->size=0;
    C->size=0;
}

void inputAB(sequencelist *A,sequencelist *B)
{
    int a,i=0;
    printf("请输入顺序表A的内容(以-1结束):\n");
    do
    {
        scanf("%d",&a);
        if(a!=-1)
        {
            A->a[i]=a;
            A->size++;
            i++;
        }
    }
    while(a!=-1&&i
     
     
      
      a[i]=a;
            B->size++;
            i++;
        }
    }
    while(a!=-1&&i
      
      
       
       =A.size){
	        C->a[i]=B.a[k];
                k++;	
	        }else{
                C->a[i]=A.a[j];
                j++;
				}
        }
        else{
        	if(k>=B.size){
	        C->a[i]=A.a[j];
                j++;	
	        }
	        else{
        	C->a[i]=B.a[k];
            k++;	
        	}
        }
        C->size++;
        }
}



void printAB(sequencelist A,sequencelist B)
{
        int i;
        printf("顺序表A的内容为:\n");
        for(i=0; i
       
       
      
      
     
     
    
    
   
   

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值