• -> 其实是 (*pointer).value
  • C++ 中有 C++ STL ,效果几乎相同,效率和数组相似
  • Error handling using new
char* c = new (std::nothrow) char[100];
if (!c) {
// Handle error
}
  • Deque 效果和 Doubly Linked List 完全相同

注意内存泄漏
全部用函数管理会好一些

void insert_front(struct Node** head, int new_data) // **指向指针的指针
{
   //allocate memory for New node
   struct Node* newNode = new Node;
 
   //assign data to new node
   newNode->data = new_data;
 
   //new node is head and previous is null, since we are adding at the front
   newNode->next = (*head);
   newNode->prev = NULL;
 
   //previous of head is new node
   if ((*head) != NULL)
   (*head)->prev = newNode;
 
   //head points to new node
   (*head) = newNode;
}
 
// insert after
void insert_After(struct Node* prev_node, int new_data)
{
   //check if prev node is null
   if (prev_node == NULL) {
   cout<<"Previous node is required , it cannot be NULL";
   return;
}
   //allocate memory for new node
   struct Node* newNode = new Node;
 
   //assign data to new node
   newNode->data = new_data;
 
   //set next of newnode to next of prev node
   newNode->next = prev_node->next;
 
   //set next of prev node to newnode
   prev_node->next = newNode;
 
   //now set prev of newnode to prev node
   newNode->prev = prev_node;
 
   //set prev of new node's next to newnode
   if (newNode->next != NULL)
   newNode->next->prev = newNode;
}

可用于实现大部分 , 如 Tree Queue Stack Data Structure Heap Data Structure