заголовок .Н
#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 (); }