Шпоры по Си. Шаблоны стандартных структур данных

1. стек представлен динамическим массивом 1. хранение указателей на объекты 1. включение элемента с сохранением упорядоченности template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный for int k 0 k sp element data k k for int p sp p k p data p data p-1 data k element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b s.Push c укладываем данные int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 1. стек представлен динамическим массивом 1. хранение указателей на объекты 2. поиск и возвращение минимального объекта template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T FindMin void StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T StackDA T StackDA void delete data template class T T StackDA T FindMin void if sp 0 return NULL стек пустой T min data 0 for int k 1 k sp k if data k min min data k поиск мин. return min void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7 s. Push a s.Push b s.Push c укладываем данные int m s.FindMin поиск мин. 1. стек представлен динамическим массивом 1. хранение указателей на объекты 3. сортировка любым методом template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T void StackDA T Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b s.Push c укладываем данные s.Sort int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 1. стек представлен динамическим массивом 1. хранение указателей на объекты 4. двоичный поиск по ключу template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void T FindBin T key двоичный поиск StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T void StackDA T Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен template class T T StackDA T FindBin T key int a 0,b sp-1 начало,конец отрезка while a b int m a b 2 середина if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7,d 13 s. Push a s.Push b s.Push c укладываем данные s.Sort int k s.FindBin d поиск 1. стек представлен динамическим массивом 1. хранение указателей на объекты 5. включение элемента по номеру template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL int Insert T element,int num включение по номеру результат если нельзя то -1 иначе, количество элементов StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T int StackDA T Insert T element,int num if sp size num sp num 0 return -1 стек полный или номер слишком большой for int p sp p num p data p data p-1 data num element return sp template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b укладываем данные s. Insert c,1 вставляем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 1. стек представлен динамическим массивом 1. хранение указателей на объекты 6. исключение элемента по номеру template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T Exclude int num исключение по номеру результат если нельзя то NULL StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T T StackDA T Exclude int num if sp 0 num sp num 0 return NULL стек пустой или номер слишком большой T temp data num for int p num p sp-1 p data p data p 1 sp return temp template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7 s. Push a s.Push b s.Push c укладываем данные int k s.Exclude 1 вытаскиваем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 1. стек представлен динамическим массивом 1. хранение указателей на объекты 7. поиск и возвращение элемента по номеру template class T class StackDA private T data динамический МУ на данные int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T operator int num взятие по номеру результат если нельзя то NULL StackDA void template class T StackDA T StackDA int size size size data T new char size sizeof T выделение памяти под МУ sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T T StackDA T operator int num if sp 0 num sp num 0 return NULL стек пустой или номер слишком большой return data num template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b s.Push c укладываем данные int k s 1 берем элемент int pa s. Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 1. стек представлен динамическим массивом 2. хранение объектов 1. включение элемента с сохранением упорядоченности template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный for int k 0 k sp element data k k for int p sp p k p data p data p-1 data k element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти int s. Push 27 s.Push 13 s.Push 19 укладываем данные int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 1. стек представлен динамическим массивом 2. хранение объектов 2. поиск и возвращение минимального объекта template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T FindMin void StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T StackDA T StackDA void delete data template class T T StackDA T FindMin void if sp 0 return NULL стек пустой int min data 0 for int k 1 k sp k if data k data min min k поиск мин. return data min void main StackDA int s 20 стек из 20-ти int s.Push 55 s.Push 11 s.Push 33 укладываем данные int m s.FindMin поиск мин. 1. стек представлен динамическим массивом 2. хранение объектов 3. сортировка любым методом template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T void StackDA T Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти int s.Push 35 s.Push 17 s.Push 29 укладываем данные s.Sort int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 1. стек представлен динамическим массивом 2. хранение объектов 4. двоичный поиск по ключу template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void T FindBin T key двоичный поиск StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T void StackDA T Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен template class T T StackDA T FindBin T key int a 0,b sp-1 начало,конец отрезка while a b int m a b 2 середина if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти int s.Push 78 s.Push 10 s.Push 5 укладываем данные s.Sort int k s.FindBin 78 поиск 1. стек представлен динамическим массивом 2. хранение объектов 5. включение элемента по номеру template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL int Insert T element,int num включение по номеру результат если нельзя то -1 иначе, количество элементов StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T int StackDA T Insert T element,int num if sp size num sp num 0 return -1 стек полный или номер слишком большой for int p sp p num p data p data p-1 data num element return sp template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти int s. Push 99 s.Push 45 укладываем данные s.Insert 33,1 вставляем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 1. стек представлен динамическим массивом 2. хранение объектов 6. исключение элемента по номеру template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Exclude int num исключение по номеру результат если нельзя то NULL StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T void StackDA T Exclude int num if sp 0 num sp num 0 return стек пустой или номер слишком большой for int p num p sp-1 p data p data p 1 sp template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти int s.Push 35 s.Push 11 s.Push 89 укладываем данные s.Exclude 1 вытаскиваем элемент int pa s. Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 1. стек представлен динамическим массивом 2. хранение объектов 7. поиск и возвращение элемента по номеру template class T class StackDA private T data int size,sp размер стека,кол-во элементов public StackDA int size int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T operator int num взятие по номеру результат если нельзя то NULL StackDA void template class T StackDA T StackDA int size size size data T new T size выделение памяти sp 0 template class T int StackDA T Push T element if sp size return -1 стек полный data sp element return sp template class T T StackDA T Pop void if sp 0 return NULL стек пустой return data sp template class T T StackDA T operator int num if sp 0 num sp num 0 return NULL стек пустой или номер слишком большой return data num template class T StackDA T StackDA void delete data void main StackDA int s 20 стек из 20-ти int s.Push 54 s.Push 23 s.Push 87 укладываем данные int k s 1 берем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 2. стек представлен статическим массивом 1. хранение указателей на объекты 1. включение элемента с сохранением упорядоченности template class T, int size class StackSA private T data size cтатический МУ на данные int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный for int k 0 k sp element data k k for int p sp p k p data p data p-1 data k element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7 s. Push a s.Push b s.Push c укладываем данные int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 2. стек представлен cтатическим массивом 1. хранение указателей на объекты 2. поиск и возвращение минимального объекта template class T, int size class StackSA private T data size cтатический МУ на данные int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T FindMin void template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный data sp element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp template class T, int size T StackSA T, size FindMin void if sp 0 return NULL стек пустой T min data 0 for int k 1 k sp k if data k min min data k поиск мин. return min void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b s.Push c укладываем данные int m s. FindMin поиск мин. 2. стек представлен cтатическим массивом 1. хранение указателей на объекты 3. сортировка любым методом template class T, int size class StackSA private T data size статический МУ на данные int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный data sp element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp template class T, int size void StackSA T, size Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b s.Push c укладываем данные s.Sort int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 2. стек представлен статическим массивом 1. хранение указателей на объекты 4. двоичный поиск по ключу template class T, int size class StackSA private T data size статический МУ на данные int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void T FindBin T key двоичный поиск template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный data sp element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp template class T, int size void StackSA T, size Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен template class T, int size T StackSA T, size FindBin T key int a 0,b sp-1 начало,конец отрезка while a b int m a b 2 середина if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7,d 13 s.Push a s.Push b s.Push c укладываем данные s.Sort int k s.FindBin d поиск 2. стек представлен статическим массивом 1. хранение указателей на объекты 5. включение элемента по номеру template class T, int size class StackSA private T data size статический МУ на данные int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL int Insert T element,int num включение по номеру результат если нельзя то -1 иначе, количество элементов template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный data sp element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp template class T, int size int StackSA T, size Insert T element,int num if sp size num sp num 0 return -1 стек полный или номер слишком большой for int p sp p num p data p data p-1 data num element return sp void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b укладываем данные s.Insert c,1 вставляем элемент int pa s. Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 2. стек представлен ссстатическим массивом 1. хранение указателей на объекты 6. исключение элемента по номеру template class T, int size class StackSA private T data size статический МУ на данные int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T Exclude int num исключение по номеру результат если нельзя то NULL template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный data sp element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp template class T, int size T StackSA T, size Exclude int num if sp 0 num sp num 0 return NULL стек пустой или номер слишком большой T temp data num for int p num p sp-1 p data p data p 1 sp return temp void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7 s.Push a s.Push b s.Push c укладываем данные int k s. Exclude 1 вытаскиваем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 2. стек представлен статическим массивом 1. хранение указателей на объекты 7. поиск и возвращение элемента по номеру template class T, int size class StackSA private T data статический МУ на данные int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T operator int num взятие по номеру результат если нельзя то NULL template class T, int size StackSA T, size StackSA sp 0 template class T, int size int StackSA T, size Push T element if sp size return -1 стек полный data sp element return sp template class T, int size T StackSA T, size Pop void if sp 0 return NULL стек пустой return data sp template class T, int size T StackSA T, size operator int num if sp 0 num sp num 0 return NULL стек пустой или номер слишком большой return data num void main StackSA int, 20 s стек из 20-ти указателей на int int a 13,b 5,c 7 s. Push a s.Push b s.Push c укладываем данные int k s 1 берем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 2. стек представлен статическим массивом 2. хранение объектов 1. включение элемента с сохранением упорядоченности template class T,int size class StackSA private T data size int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный for int k 0 k sp element data k k for int p sp p k p data p data p-1 data k element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp void main StackSA int,25 s стек из 25-ти int s.Push 27 s.Push 13 s.Push 19 укладываем данные int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 2. стек представлен статическим массивом 2. хранение объектов 2. поиск и возвращение минимального объекта template class T,int size class StackSA private T data size int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T FindMin void template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный data sp element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp template class T,int size T StackSA T,size FindMin void if sp 0 return NULL стек пустой int min data 0 for int k 1 k sp k if data k data min min k поиск мин. return data min void main StackSA int,30 s стек из 30-ти int s.Push 55 s.Push 11 s.Push 33 укладываем данные int m s.FindMin поиск мин. 2. стек представлен статическим массивом 2. хранение объектов 3. сортировка любым методом template class T,int size class StackSA private T data size int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный data sp element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp template class T,int size void StackSA T,size Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен void main StackSA int,10 s стек из 10-ти int s.Push 35 s.Push 17 s.Push 29 укладываем данные s.Sort int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем упорядоченные по возрастанию эл-ты 2. стек представлен статическим массивом 2. хранение объектов 4. двоичный поиск по ключу template class T,int size class StackSA private T data size int sp кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Sort void T FindBin T key двоичный поиск template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный data sp element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp template class T,int size void StackSA T,size Sort void for int i 0 i sp-1 i for int j i 1 j sp j if data j data i T temp data j data j data i data i temp обмен template class T,int size T StackSA T,size FindBin T key int a 0,b sp-1 начало,конец отрезка while a b int m a b 2 середина if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден void main StackSA int,20 s стек из 20-ти int s.Push 78 s.Push 10 s.Push 5 укладываем данные s.Sort int k s.FindBin 78 поиск 2. стек представлен статическим массивом 2. хранение объектов 5. включение элемента по номеру template class T,int size class StackSA private T data size int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL int Insert T element,int num включение по номеру результат если нельзя то -1 иначе, количество элементов template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный data sp element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp template class T,int size int StackSA T,size Insert T element,int num if sp size num sp num 0 return -1 стек полный или номер слишком большой for int p sp p num p data p data p-1 data num element return sp void main StackSA int,20 s стек из 20-ти int s.Push 99 s.Push 45 укладываем данные s.Insert 33,1 вставляем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 2. стек представлен статическим массивом 2. хранение объектов 6. исключение элемента по номеру template class T,int size class StackSA private T data size int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL void Exclude int num исключение по номеру результат если нельзя то NULL template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный data sp element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp template class T,int size void StackSA T,size Exclude int num if sp 0 num sp num 0 return стек пустой или номер слишком большой for int p num p sp-1 p data p data p 1 sp void main StackSA int,20 s стек из 20-ти int s. Push 35 s.Push 11 s.Push 89 укладываем данные s.Exclude 1 вытаскиваем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 2. стек представлен статическим массивом 2. хранение объектов 7. поиск и возвращение элемента по номеру template class T,int size class StackSA private T data size int sp размер стека,кол-во элементов public StackSA int Push T element результат если стек полный то -1 иначе, количество элементов T Pop void результат если стек пустой то NULL T operator int num взятие по номеру результат если нельзя то NULL template class T,int size StackSA T,size StackSA sp 0 template class T,int size int StackSA T,size Push T element if sp size return -1 стек полный data sp element return sp template class T,int size T StackSA T,size Pop void if sp 0 return NULL стек пустой return data sp template class T,int size T StackSA T,size operator int num if sp 0 num sp num 0 return NULL стек пустой или номер слишком большой return data num void main StackSA int,20 s стек из 20-ти int s.Push 54 s.Push 23 s.Push 87 укладываем данные int k s 1 берем элемент int pa s.Pop , pb s.Pop , pc s.Pop вытаскиваем эл-ты 3. статический массив 1. хранение указателей на обьекты 1. Включение элемента с сохранением упорядочености. template class T,int size class SArray private T data size public SArray SArray void operator T q T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size void SArray T,size operator T q for int k 0 k size data k ! NULL k if k size return нет места в массиве for k 0 data k-1 q k data k data k-1 раздвигаем элементы data k q вставляем элемент template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main SArray int,10 a заводим массив указателей на int a new int 5 a new int 25 a new int 15 заносим значения int k a 1 получаем значение 15 3. статический массив 1. хранение указателей на обьекты 2. Поиск и возвращение минимального об екта. template class T,int size class SArray private T data size public SArray SArray T Min T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size T SArray T,size Min for int k 0 k size data k NULL k номер первого не NULL элемента int tmp k в tmp for k size k if data k ! NULL data k data tmp tmp k поиск минимального return data tmp template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main SArray int,10 a заводим массив указателей на int a 1 5 a 4 3 a 3 7 заносим значения int k a. Min получаем значение 3 3. статический массив 1. хранение указателей на обьекты 3. Сортировка любым методом . template class T,int size class SArray private T data size public SArray SArray void Sort T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size void SArray T,size Sort for int i 0 i size-1 i for int j i 1 j size j if data i NULL data j ! NULL data j data i сравнение T tmp data j data j data i data i tmp обмен template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main SArray int,10 a заводим массив указателей на int a 1 15 a 4 9 a 3 17 заносим значения a.Sort сортируем int i a 0 ,j a 1 ,k a 2 достаем отсортированнные по возрастанию 3. статический массив 1. хранение указателей на обьекты 4. Двоичный поиск на основе сравнения с внешним об ектом-ключом template class T,int size class SArray private T data size public SArray SArray T FindBin T key T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size T SArray T,size FindBin T key int a 0,b size-1 начало,конец отрезка while a b int m a b 2 середина while data m NULL m a m if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main SArray int,10 a заводим массив указателей на int a 0 5 a 1 9 a 2 17 заносим значения int i a. FindBin 17 двоичный поиск 3. статический массив 1. хранение указателей на обьекты 5. Включение элемента по номеру. template class T,int size class SArray private T data size public SArray SArray T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main SArray int,10 a заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 3. статический массив 1. хранение указателей на обьекты 6. Исключение удаление элемента по номеру. template class T,int size class SArray private T data size public SArray SArray T operator int i void Del int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i template class T,int size void SArray T,size Del int i if i 0 i size return if data i NULL return delete data i void main SArray int,10 a заводим массив указателей на int a 0 500 a 1 98 a 2 17 заносим значения a.Del 0 a.Del 1 a.Del 2 удаляем 3. статический массив 1. хранение указателей на обьекты 7. Поиск и возвращение элемента по номеру. template class T,int size class SArray private T data size public SArray SArray T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k NULL template class T,int size SArray T,size SArray for int k 0 k size k if data k ! NULL delete data k template class T,int size T SArray T,size operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main SArray int,10 a заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 3. статический массив 2. хранение обьектов 1. Включение элемента с сохранением упорядочености. template class T,int size class SArray private T data size public SArray void operator T q T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size void SArray T,size operator T q for int k 0 k size data k ! 0 k if k size return нет места в массиве for k 0 data k-1 q k data k data k-1 раздвигаем элементы data k q вставляем элемент template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i void main SArray int,10 a заводим массив указателей на int a 5 a 25 a 15 заносим значения int k a 1 получаем значение 15 3. статический массив 2. хранение обьектов 2. Поиск и возвращение минимального об екта. template class T,int size class SArray private T data size public SArray T Min T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size T SArray T,size Min int tmp 0 for int k 1 k size k if data k data tmp tmp k поиск минимального return data tmp template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i void main SArray int,10 a заводим массив указателей на int a 0 5 a 1 3 a 2 7 заносим значения int k a.Min получаем значение 3 3. статический массив 2. хранение обьектов 3. Сортировка любым методом . template class T,int size class SArray private T data size public SArray void Sort T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size void SArray T,size Sort for int i 0 i size-1 i for int j i 1 j size j if data j data i сравнение T tmp data j data j data i data i tmp обмен template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i void main SArray int,10 a заводим массив указателей на int a 1 15 a 4 9 a 3 17 заносим значения a.Sort сортируем int i a 0 ,j a 1 ,k a 2 достаем отсортированнные по возрастанию 3. статический массив 2. хранение обьектов 4. Двоичный поиск на основе сравнения с внешним об ектом-ключом template class T,int size class SArray private T data size public SArray T FindBin T key T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size T SArray T,size FindBin T key int a 0,b size-1,m начало,конец отрезка,середина while a b m a b 2 середина if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return data m не найден возвращаем ближайший template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i void main SArray int,10 a заводим массив указателей на int a 0 5 a 1 9 a 2 17 заносим значения int i a.FindBin 17 двоичный поиск 3. статический массив 2. хранение обьектов 5. Включение элемента по номеру. template class T,int size class SArray private T data size public SArray T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i void main SArray int,10 a заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 3. статический массив 2. хранение обьектов 6. Исключение удаление элемента по номеру. template class T,int size class SArray private T data size public SArray T operator int i void Del int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i template class T,int size void SArray T,size Del int i if i 0 i size return data i 0 void main SArray int,10 a заводим массив указателей на int a 0 500 a 1 98 a 2 17 заносим значения a.Del 0 a.Del 1 a.Del 2 удаляем 3. статический массив 2. хранение обьектов 7. Поиск и возвращение элемента по номеру. template class T,int size class SArray private T data size public SArray T operator int i template class T,int size SArray T,size SArray for int k 0 k size k data k 0 template class T,int size T SArray T,size operator int i if i 0 i size return data 0 если выходит за границы то возвращаем первый элемент return data i void main SArray int,10 a заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 4. динамический массив 1. хранение указателей на обьекты 1. Включение элемента с сохранением упорядочености. template class T class DArray private T data int size public DArray int size DArray void operator T q T operator int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T void DArray T operator T q for int k 0 k size data k ! NULL k if k size return нет места в массиве for k 0 data k-1 q k data k data k-1 раздвигаем элементы data k q вставляем элемент template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main DArray int a 10 заводим массив указателей на int int x 5,y 99,z 7 a x a y a z заносим значения int k a 1 получаем значение 7 4. динамический массив 1. хранение указателей на обьекты 2. Поиск и возвращение минимального об екта. template class T class DArray private T data int size public DArray int size DArray T Min T operator int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T T DArray T Min for int k 0 k size data k NULL k номер первого не NULL элемента int tmp k в tmp for k size k if data k ! NULL data k data tmp tmp k поиск минимального return data tmp template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main DArray int a 20 заводим массив указателей на int a 1 5 a 4 3 a 3 7 заносим значения int k a.Min получаем значение 3 4. динамический массив 1. хранение указателей на обьекты 3. Сортировка любым методом . template class T class DArray private int size T data public DArray int size DArray void Sort T operator int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T void DArray T Sort for int i 0 i size-1 i for int j i 1 j size j if data i NULL data j ! NULL data j data i сравнение T tmp data j data j data i data i tmp обмен template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main DArray int a 5 заводим массив указателей на int a 1 15 a 4 9 a 3 17 заносим значения a.Sort сортируем int i a 0 ,j a 1 ,k a 2 достаем отсортированнные по возрастанию 4. динамический массив 1. хранение указателей на обьекты 4. Двоичный поиск на основе сравнения с внешним об ектом-ключом template class T class DArray private int size T data public DArray int size DArray T FindBin T key T operator int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T T DArray T FindBin T key int a 0,b size-1 начало,конец отрезка while a b int m a b 2 середина while data m NULL m a m if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main DArray int a 15 заводим массив указателей на int a 0 5 a 1 9 a 2 17 заносим значения int i a.FindBin 17 двоичный поиск 4. динамический массив 1. хранение указателей на обьекты 5. Включение элемента по номеру. template class T class DArray private int size T data public DArray int size DArray T operator int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main DArray int a 30 заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 4. динамический массив 1. хранение указателей на обьекты 6. Исключение удаление элемента по номеру. template class T class DArray private int size T data public DArray int size DArray T operator int i void Del int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i template class T void DArray T Del int i if i 0 i size return if data i NULL return data i NULL void main DArray int a 30 заводим массив указателей на int a 0 500 a 1 98 a 2 17 заносим значения a.Del 0 a.Del 1 a.Del 2 удаляем 4. динамический массив 1. хранение указателей на обьекты 7. Поиск и возвращение элемента по номеру. template class T class DArray private int size T data public DArray int size DArray T operator int i template class T DArray T DArray int size size size data T new char sizeof T size for int i 0 i size i data i NULL template class T DArray T DArray delete data template class T T DArray T operator int i if i 0 i size return NULL if data i NULL data i new T return data i void main DArray int a 20 заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 4. динамический массив 2. хранение обьектов 1. Включение элемента с сохранением упорядочености. template class T class DArray private T data int size,sp public DArray int size DArray void operator T q T operator int i template class T DArray T DArray int size size size sp 0 data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T void DArray T operator T q if sp size return for int k sp k 0 data k-1 q k data k data k-1 раздвигаем элементы data k q вставляем элемент template class T T DArray T operator int i if i 0 i size return NULL return data i void main DArray int a 10 заводим массив указателей на int int x 5,y 99,z 7 a x a y a z заносим значения int k a 1 получаем значение 7 4. динамический массив 2. хранение обьектов 2. Поиск и возвращение минимального об екта. template class T class DArray private T data int size public DArray int size DArray T Min T operator int i template class T DArray T DArray int size size size data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T T DArray T Min int tmp 0 for int k 1 k size k if data k data tmp tmp k поиск минимального return data tmp template class T T DArray T operator int i if i 0 i size return NULL return data i void main DArray int a 3 заводим массив указателей на int a 0 5 a 1 3 a 2 7 заносим значения int k a.Min получаем значение 3 4. динамический массив 2. хранение обьектов 3. Сортировка любым методом . template class T class DArray private int size T data public DArray int size DArray void Sort T operator int i template class T DArray T DArray int size size size data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T void DArray T Sort for int i 0 i size-1 i for int j i 1 j size j if data j data i сравнение T tmp data j data j data i data i tmp обмен template class T T DArray T operator int i if i 0 i size return NULL return data i void main DArray int a 5 заводим массив указателей на int a 1 15 a 4 9 a 3 17 заносим значения a.Sort сортируем int i a 0 ,j a 1 ,k a 2 достаем отсортированнные по возрастанию 4. динамический массив 2. хранение обьектов 4. Двоичный поиск на основе сравнения с внешним об ектом-ключом template class T class DArray private int size T data public DArray int size DArray T FindBin T key T operator int i template class T DArray T DArray int size size size data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T T DArray T FindBin T key int a 0,b size-1 начало,конец отрезка while a b int m a b 2 середина while data m NULL m a m if data m key return data m совпало с ключом if data m key a m 1 правая часть else b m-1 левая часть return NULL не найден template class T T DArray T operator int i if i 0 i size return NULL return data i void main DArray int a 15 заводим массив указателей на int a 0 5 a 1 9 a 2 17 заносим значения int i a.FindBin 17 двоичный поиск 4. динамический массив 2. хранение обьектов 5. Включение элемента по номеру. template class T class DArray private int size T data public DArray int size DArray T operator int i template class T DArray T DArray int size size size data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T T DArray T operator int i if i 0 i size return NULL return data i void main DArray int a 30 заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 4. динамический массив 2. хранение обьектов 6. Исключение удаление элемента по номеру. template class T class DArray private int size T data public DArray int size DArray T operator int i void Del int i template class T DArray T DArray int size size size data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T T DArray T operator int i if i 0 i size return NULL return data i template class T void DArray T Del int i if i 0 i size return data i 0 void main DArray int a 30 заводим массив указателей на int a 0 500 a 1 98 a 2 17 заносим значения a.Del 0 a.Del 1 a.Del 2 удаляем 4. динамический массив 2. хранение обьектов 7. Поиск и возвращение элемента по номеру. template class T class DArray private int size T data public DArray int size DArray T operator int i template class T DArray T DArray int size size size data T new T size for int i 0 i size i data i 0 template class T DArray T DArray delete data template class T T DArray T operator int i if i 0 i size return NULL return data i void main DArray int a 20 заводим массив указателей на int a 4 6 a 6 7 a 1 2 заносим значения int i a 4 i a 6 i a 1 получаем значения 5. Односвязный список 1. Хранение указателей на объекты 1. Включение элемента с сохранением упорядочености. template class T class List private List T next T data public List T a List void Add T a добавление элемента template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T void List T Add T a добавление элемента if next NULL если последний if a data next new List T a else next new List T data data a else if a data если вставляемый меньше текущего next- Add data раздвигаем рекурсия data a else if a data a next- data если вставляемый должен быть следующим List T p next next new List T a создаем новый элемент next- next p else next- Add a если вставляемый больше текущего рекурсия void main List int a 10 создание списка a.Add 5 a.Add 11 a.Add 3 вставка элементов 5. Односвязный список 1. Хранение указателей на объекты 2. Поиск и возвращение минимального обьекта. template class T class List private List T next T data public List T a List T FindMin поиск минимального void Insert T a,int pos вставка элемента template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T T List T FindMin T tmp data принимаем начальный за минимальный List T p this- next while p! NULL проходим список if p- data tmp tmp p- data если есть меньший - запоминаем p p- next return tmp возвращаем минимальный template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a.Insert 15,1 a.Insert 4,2 a.Insert 7,3 вставка элементов int k a.FindMin поиск минимального 5. Односвязный список 1. Хранение указателей на объекты 3. Сортировка любым методом . template class T class List private List T next T data public List T a List void Sort сортировка void Insert T a,int pos вставка элемента template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T void List T Sort for List T p this p- next! NULL p p- next for List T q p- next q! NULL q q- next if p- data q- data если слева больший элемент T tmp p- data p- data q- data q- data tmp производим обмен template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a.Insert 15,1 a.Insert 4,2 a.Insert 7,3 вставка элементов a.Sort сортировка элементов 5. Односвязный список 1. Хранение указателей на объекты 4. Двоичный поиск на основе сравнения с внешним обьектом-ключом template class T class List private List T next T data public List T a List List T Search int num T FindBin T key void Insert T a,int pos вставка элемента template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T List T List T Search int num List T p this while num 0 p- next! NULL p p- next ищем в списке return p template class T T List T FindBin T key int a 0,b 1 начало,конец отрезка List T p this while p- next! NULL b p p- next подсчет элементов while a b int m a b 2 середина if Search m - data key return Search m - data совпало с ключом if Search m - data key a m 1 правая часть else b m-1 левая часть return NULL не найден template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 3 создание списка a.Insert 6,1 a.Insert 9,2 a.Insert 17,3 вставка элементов int j a. FindBin 11 5. Односвязный список 1. Хранение указателей на объекты 5. Включение элемента по номеру. template class T class List private List T next T data public List T a List void Insert T a,int pos вставка элемента template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a. Insert 55,1 вставка элемента на первую позицию 5. Односвязный список 1. Хранение указателей на объекты 6. Исключение удаление элемента по номеру. template class T class List private List T next T data public List T a List void Insert T a,int pos вставка элемента void Delete int pos удаление элемента template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов template class T void List T Delete int pos if pos 0 next NULL return первый или единственный элемент не удаляется List T p this, q next while pos 1 q- next! NULL p p- next q q- next ищем место в списке p- next q- next q- next NULL delete q void main List int a 10 создание списка a.Insert 55,1 a.Insert 5,2 a.Insert 17,3 вставка элементов a. Delete 1 удаление элемента 5. Односвязный список 1. Хранение указателей на объекты 7. Поиск и возвращение элемента по номеру. template class T class List private List T next T data public List T a List void Insert T a,int pos вставка элемента T Get int num получить элемент по номеру template class T List T List T a next NULL data new T data a выделение памяти и копирование template class T List T List delete data if next! NULL delete next удаление элемента и списка template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов template class T T List T Get int num List T p this while num 0 p- next! NULL p p- next ищем в списке return p- data void main List int a 10 создание списка a.Insert 13,1 a.Insert 33,2 вставка элементов int i a.Get 1 взять элемент по номеру 5. Односвязный список 2. Хранение объектов 1. Включение элемента с сохранением упорядочености. template class T class List private List T next T data public List T a List void Add T a добавление элемента template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T void List T Add T a добавление элемента if next NULL если последний if a data next new List T a else next new List T data data a else if a data если вставляемый меньше текущего next- Add data раздвигаем data a else if a data a next- data если вставляемый должен быть следующим List T p next next new List T a создаем новый элемент next- next p else next- Add a если вставляемый больше текущего void main List int a 10 создание списка a.Add 5 a.Add 11 a.Add 3 вставка элементов 5. Односвязный список 2. Хранение объектов 2. Поиск и возвращение минимального обьекта. template class T class List private List T next T data public List T a List T FindMin поиск минимального void Insert T a,int pos вставка элемента template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T T List T FindMin T tmp data принимаем начальный за минимальный List T p this- next while p! NULL проходим список if p- data tmp tmp p- data если есть меньший - запоминаем p p- next return tmp возвращаем минимальный template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a.Insert 3,1 a.Insert 9,2 вставка элементов int k a.FindMin поиск минимального 5. Односвязный список 2. Хранение объектов 3. Сортировка любым методом . template class T class List private List T next T data public List T a List void Sort сортировка void Insert T a,int pos вставка элемента template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T void List T Sort for List T p this p- next! NULL p p- next for List T q p- next q! NULL q q- next if p- data q- data если слева больший элемент T tmp p- data p- data q- data q- data tmp производим обмен template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a. Insert 155,1 a.Insert 77,2 вставка элементов a.Sort сортировка элементов 5. Односвязный список 2. Хранение объектов 4. Двоичный поиск на основе сравнения с внешним обьектом-ключом template class T class List private List T next T data public List T a List List T Search int num T FindBin T key void Insert T a,int pos вставка элемента template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T List T List T Search int num List T p this while num 0 p- next! NULL p p- next ищем в списке return p template class T T List T FindBin T key int a 0,b 1 начало,конец отрезка List T p this while p- next! NULL b p p- next подсчет элементов while a b int m a b 2 середина if Search m - data key return Search m - data совпало с ключом if Search m - data key a m 1 правая часть else b m-1 левая часть return 0 не найден template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a.Insert 12,1 a.Insert 15,2 a.Insert 95,3 вставка элементов int j a.FindBin 11 5. Односвязный список 2. Хранение объектов 5. Включение элемента по номеру. template class T class List private List T next T data public List T a List void Insert T a,int pos вставка элемента template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов void main List int a 10 создание списка a.Insert 15,1 вставка элемента на первую позицию 5. Односвязный список 2. Хранение объектов 6. Исключение удаление элемента по номеру. template class T class List private List T next T data public List T a List void Insert T a,int pos вставка элемента void Delete int pos удаление элемента template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов template class T void List T Delete int pos if pos 0 next NULL return первый или единственный элемент не удаляется List T p this, q next while pos 1 q- next! NULL p p- next q q- next ищем место в списке p- next q- next q- next NULL delete q void main List int a 10 создание списка a.Insert 55,1 вставка элемента на первую позицию a.Delete 1 удаление элемента 5. Односвязный список 2. Хранение объектов 7. Поиск и возвращение элемента по номеру. template class T class List private List T next T data public List T a List void Insert T a,int pos вставка элемента T Get int num получить элемент по номеру template class T List T List T a next NULL data a выделение памяти и копирование template class T List T List if next! NULL delete next удаление элемента и списка template class T void List T Insert T a,int pos List T p this, q while pos 0 p- next! NULL p p- next ищем место в списке q p- next p- next new List T p- data создаем новый элемент p- data a записываем данные p- next- next q восстанавливаем последовательность элементов template class T T List T Get int num List T p this while num 0 p- next! NULL p p- next ищем в списке return p- data void main List i.