CPP
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Created by Ketan Lalcheta
#include <iostream>
#include <memory>
template<typename T>
struct node
{
T data;
std::shared_ptr<node> next; // Changed to shared_ptr
std::weak_ptr<node> prev; // Keep this as weak_ptr to avoid circular references
node(T data)
: data(data), next(nullptr)
{
prev.reset();
}
~node() {
std::cout << "Node with data " << data << " is deleted\n";
}
};
template<typename T>
struct mylist
{
std::shared_ptr<node<T>> head;
Enter to Rename, Shift+Enter to Preview
OUTPUT
Run