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