第一章---线性表之顺序表 合并顺序表

#include <iostream>
#define MAXSIZE 100
using namespace std;
typedef int DataType;   //使int重命名为DataType 
typedef struct{
	DataType data[MAXSIZE];  //定义DataType为int ,存储结构为顺序存储 
	int length; 
}SeqList; 

/*
问题描述:有序的线性表A,B,把他们合并成C并且还是从小到大有序
*/ //创建顺序表 void create_List(SeqList &L){ cout<<"请输入要输入的数据个数:"; cin>>L.length; cout<<"请输入要输入的数据:"<<" "; for(int i=0;i<L.length;i++){ cin>>L.data[i]; } } //输出顺序表中的元素 void out_List(SeqList &L){ //判断线性表是否为空 if(L.length != 0){ for(int i=0;i<L.length;i++){ cout<<L.data[i]<<" "; } }else{ cout<<"线性表为空"<<" "; } } //将有序的顺序表A,B合并成C void merge(SeqList &A,SeqList &B,SeqList &C){ int i,j,k; i=0;j=0;k=0; while(i<A.length && j<B.length){ if(A.data[i]>=B.data[j]){ C.data[k]=B.data[j]; j++; k++; }else{ C.data[k]=A.data[i]; i++; k++; } } while(i<A.length){ C.data[k]=A.data[i]; k++; i++; } while(j<B.length){ C.data[k]=B.data[j]; k++; j++; } C.length=A.length+B.length; } int main(int argc, char** argv) { SeqList A,B,C; create_List(A); create_List(B); out_List(A); cout<<" "; out_List(B); cout<<" "; merge(A,B,C); out_List(C); cout<<" "; return 0; }

  

原文地址:https://www.cnblogs.com/nanfengnan/p/14371973.html