2.1 Объединения два перечня последовательностей

заголовок .Н

#pragma После
 #pragma После 
#include <iostream в>            // определение "seqList.h" в 
#include <stdlib.h> с использованием пространства имен STD;
 сопзЬ междунар defaultSize и = 100 ; 
Шаблон < класс E>
 класс SeqList {
 защищен : 
    E * Данные,              // содержит массив INT в MaxSize;          // число записей , которые могут вместить максимальную запись Int в прошлом;              // последней позиция в настоящее время хранятся записи
     // аннулируется Resize (интермедиат NewSize);     //
  
    
    改变数组空间大小
общественность : 
    SeqList ( INT SZ = defaultSize) { 
        MaxSize = SZ; 
        Данные = новый E [MaxSize]; 
        последняя = - 1 ; 
    } 
    // 构造函数 
    SeqList (SeqList <Е> & L) , {
         это -> MaxSize = L.maxSize;
        это -> последняя = L.last;
        это -> Данные = новый Е [MaxSize];
        для ( междунар я = 0 ; я <= последний, я ++ ) {
             это-> Данные [I] = [I] L.data; 
        } 
    } 
    // конструктор копирования 

    INT Размер () сопзЬ {
         вернуть в MaxSize; 
    } 
    // найти таблицу максимальной емкости 
    Int длины () сопзЬ {
         вернуться Последняя + . 1 ; 
    } 
    / / расчет длины таблицы 
    INT Поиск (E X) сопзЬ 
    { 
        E E = X;
         INT RET = - 1. ,
         для ( INT I = 0 ; I <= Последний, я ++ ) 
        {
             IF (Data [I] == E) { 
                RET = I;
                 BREAK ; 
            } 
        } 
        возвращение RET; 
    } 
    // поиск положения х в таблице, функция возвращает номер записи 
    ИНТ локации ( INT I) сопзЬ {
         IF (I> = . 1 && я <= Последнее + 1. ) {
             возвращение - я; 
        } 
        еще {
             возвращение - 2 ; 
        } 
    } 
    // позиционирование и -й записи, функция возвращает номер записи
    BOOL GetData ( INT I, E & х) сопзЬ { 
        х = данные [I];
        вернуться  верно ; 
    } 
    // 取第я个表项的值
    BOOL Вставка ( INT I, E х) {
         для ( INT J = последняя; J> = I; j-- ) { 
            данных [J + 1 ] = данные [J]; 
        } 
        Данные [I] = х; 
        последний ++ ;
        вернуться  верно ; 
    } 
    // 插入
    BOOL Remove (Int I, E & х) { 
        х = данные [I];
        для ( INT J = я, J <последняя; j ++ ) { 
            данные [J] = данные [J + 1 ]; 
        } 
        Последний - ;
        вернуться  верно ; 
    } 
    // 删除
    аннулируются шоу () {
         для ( INT I = 0 ; я <= последний, я ++ ) { 
            COUT << данные [я] << "   " ; 
        } 
        Putchar ( ' \ п '); 
    } 
};

MyKit.h

#pragma раз 
#include " 标头.h " 
класс MyKiT {
 общественности :
     статический  аннулируются союз (SeqList < INT > & L1, SeqList < INT > и L2) {
         INT last1 = L1.Length () - 1 ;
        INT last2 = L2.Length () - 1 ;
        ИНТ х;
        для ( Int I = 0 ; я <= last2; я ++ ) { 
            L2.getData (я, х); 
            если (L1.Search (х) < 0 ) {
                 ++last1; 
                L1.Insert (last1, х); 
            } 
        } 
    } 
};

основной:

# include " MyKit.h " 
#include " 标头.h " 

INT основных () 
{ 
    SeqList < INT > L1, L2; 
    L1.Insert ( 0 , 9 ); 
    L1.Insert ( 0 , 6 ); 
    L1.Insert ( 1 , 3 ); 
    соиЬ << " L1: " << епсИ; 
    L1.show (); 
    для ( Int I = 0 ; я <= 9 ; я ++ ) { 
        L2.Insert (0 , я); 
    } 
    СоиЬ << " L2: " << епсИ; 
    L2.show (); 
    MyKiT :: Союз (L1, L2); 
    соиЬ << " Союз: " << епсИ; 
    L1.show (); 

}

 

рекомендация

отwww.cnblogs.com/SlowIsFast/p/12441551.html