Untitled
#include <iostream> #include <memory> template <typename T> struct ListNode { T data; std::shared_ptr<ListNode<T>> next; }; template<typename T> std::shared_ptr<ListNode<T>> SearchList(std::shared_ptr<ListNode<T>> L, T key) { while(L && L->data != key) L = L -> next; return L; } // Insert new_node after node template<typename T> void InsertAfter(const std::shared_ptr<ListNode<T>>& node, const std::shared_ptr<ListNode<T>>& new_node) { new_node -> next = node -> next; node -> next = new_node; } // Delete the node past this one. Assume node is not a tail. template<typename T> void DeleteAfter(const std::shared_ptr<ListNode<T>>& node) { node -> next = node -> next -> next; } int main() { std::shared_ptr<ListNode<int>> L {new ListNode<int>}; L->data = -1; L->next = nullptr; //std::shared_ptr<ListNode<int>> pos {SearchList(L, 0)}; //std::cout << pos->data << "\n"; }
Leave a Comment