|
Программирование >> Структурное программирование
Удаление узла из начала списка template<class NODETYPE> int List<NODETYPE>::removeFromFront(NODETYPE Svalue) if (isEmptyO) return 0; else { список пустой неудачное удаление ListNode<NODETYPE> *tempPtr = firstPtr; if (firstPtr == lastPtr) firstPtr = lastPtr = 0; else firstPtr = firstPtr->nextPtr; value = tempPtr->data; delete tempPtr; return 1; перемещение данных успешное удаление Удаление узла из конца списка template<class NODETYPE> int List<NODETYPE>::removeFromBack(NODETYPE Svalue) { if (isEmptyO ) return 0; else { ListNode<NODETYPE> *tempPtr = lastPtr; неудачное удаление if (firstPtr == lastPtr) firstPtr = lastPtr = 0; else { ListNode<NODETYPE> *currentPtr = firstPtr; while (currentPtr->nextPtr != lastPtr) currentPtr = currentPtr->nextPtr; lastPtr = currentPtr; currentPtr->nextPtr = 0; value = tempPtr->data; delete tempPtr; return 1; удачное удаление Является ли список пустым ? template<class NODETYPE> int List<NODETYPE>::isEmptyO const { return firstPtr == 0; Возвращение указателя на ближайший узел template<class NODETYPE> ListNode<NODETYPE> *List<NODETYPE>::getNewNode(const NODETYPE Svalue) ListNode<NODETYPE> *ptr = new ListNode<NODETYPE>(value); assert (ptr != 0); return ptr; Отображение на экране содержимого List template<class NODETYPE> void List<NODETYPE>: :print 0 const if (isEmpty0 ){ cout << Список пуст <<endl endl; return; ListNode<NODETYPE> *currentPtr = f irstPtr; cout Список состоит из: ; while (currentPtr != 0) ( cout << currentPtr->data << ; currentPtr = currentPtr->nextPtr; cout << endl << endl; ttendif DRIVER.CPP Проверка класса List #include <iostream.h> iinclude boss.h void testlntegerList (); void testFloatList0; void instructions 0; проверка списка целых чисел / / проверка списка чисел с плавающей запятой инструкции для пользователя main () { testlntegerList(); testFloatList(); проверка списка целых чисел проверка списка чисел с плавающей запятой return 0; } Функция проверки списка целых чисел void testlntegerList() cout Проверка списка целых чисел endl; List<int> integerList; instructions(); int choice, value; do { cout ? cin >> choice; switch (choice) { case 1: cout << Введите целое: ; cin >> value; integerList.insertAtPront(value); integerList.print(); break; .pl- ease 2: cout << Введите целое: ; cin >>value; integerList.insertAtBack(value); integerList.print(); break; case 3: if (integerList.removeFromFront(value)) cout value удаляется из спика endl; integerList.print (); break; case 4: if (integerList.removeFromBack(value)) cout value << удаляется из спика endl; integerList.print(); break; } while (choice != 5); cout << Конец проверки списка целых чисел << endl;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |