實現乙個環形的雙向鍊錶,鍊錶的每個節點都儲存三個資訊,當前節點的值value,前乙個節點的指標prev,後乙個節點的指標next。因為是環形的,所以最後乙個節點的next指向第乙個節點,而第乙個節點的prev指向最後乙個節點如果只存在乙個節點,那麼這個節點的prev和next都會指向這個節點本身。
#include
#include
#ifndef __node_h__
#define __node_h__
typedef struct node node;
node* add(node* first, int value)
node* p = first->prev;
node* q = first;
node* tmp = (node*)malloc(sizeof(node));
tmp->value = value;
tmp->next = q;
tmp->prev = p;
p->next = tmp;
q->prev = tmp;
first = tmp;
return first;
}void print(node* first)
while (p !=
null)
}int main()
print(first);
return
0;}
List雙向鍊錶
include 宣告 list int mylist 定義 mylist.push front 1 頭部插入元素 mylist.push back 2 尾部插入元素 pop front 移除頭部元素 pop back 移除尾部元素 list int iterator lter 迭代器定義 iter ...
List 雙向鍊錶
list是一種雙向鍊錶結構,可以從第乙個元素開始刪除 插入,也可以從最後乙個元素刪除 插入,下面介紹一下 list 中常用的幾個函式 一 list 中的 begin 和 end 函式 和其他幾種資料結構差不多,都是用來從第乙個元素,訪問到最後乙個元素,返回的是當前指標 listl l.begin 輸...
雙向鍊錶和環形鍊錶 約瑟夫問題
雙向鍊錶 package linkedlist public class dooublelinkedlistdemo 建立乙個雙向鍊錶的類 class doublelinkelist 遍歷雙向鍊錶的方法 public void list 定義輔助變數來遍歷 heronode2 temp head.n...