一个结构体放node
一个链表类 A
插入是尾插 中间插入就
newNode->插入那个位置的前驱的Next
前驱->newNode 就好了
HPP
#include<iostream>template<typename T>struct Node{ T data; Node*pNext;};template<typename T>class A{public:A(){ pHead = nullptr; }; ~A(){ Node<T>*p = nullptr; while (pHead) { p = pHead; pHead = pHead->pNext; delete p; p = nullptr; } }; void Insert(T d); bool Delete(T d); bool Change(T d, T o); bool Find(T d); void show();PRivate: Node<T>* pHead;};template<typename T>void A<T>::Insert(T d){ Node<T>*nNode = new Node<T>; nNode->data = d; nNode->pNext = nullptr; if (pHead == nullptr) { pHead = nNode; return; } Node<T>*p = pHead; while (p->pNext) { p = p->pNext; } p->pNext = nNode;}template<typename T>void A<T>::show(){ Node<T>*p = pHead; while (p) { cout << p->data << endl; p = p->pNext; } }template<typename T>bool A<T>::Find(T d){ Node<T>*p = nullptr; p = pHead; while (p) { if (p->data==d) { return true; } p = p->pNext; } return false;}template<typename T>bool A<T>::Delete(T d){ Node<T>*p = nullptr; p = pHead; if (!p) return false; if (pHead->data == d) { Node<T>*dd = pHead; pHead = pHead->pNext; delete dd; dd = nullptr; return true; } while (p->pNext) { if (p->pNext->data == d) { Node<T>*dd = p->pNext; p->pNext = p->pNext->pNext; delete dd; dd = nullptr; return true; } p = p->pNext; } return false;}template<typename T>bool A<T>::Change(T d, T o){ if (d==o) { return true; } Node<T>*p = pHead; while (p) { if (p->data == d) { p->data = o; return true; } p = p->pNext; } return false;}CPP
#include "h.hpp"using namespace std;int main(){ A<int>a; a.Insert(1); a.Insert('c');//ASCII a.Insert('g'); a.show(); if (a.Find(1)) { cout << "find/n"; } else { cout << "gg/n";//GG代表失败 } if (a.Change(1,2))//把1变为2 { cout << "Change/n"; } else { cout << "gg/n"; } if (a.Change(1, 2)) { cout << "Change/n"; } else { cout << "gg/n"; } if (a.Change(2, 1)) { cout << "Change/n"; } else { cout << "gg/n"; } if (a.Delete('e')) { cout << "delete/n"; } else { cout << "gg/n"; } if (a.Delete(1)) { cout << "delete/n"; } else { cout << "gg/n"; } if (a.Find(1)) { cout << "find"; } else { cout << "gg"; } }这是运行结果
新闻热点
疑难解答