List環形雙向鍊錶

2021-07-09 04:32:04 字數 762 閱讀 3136

實現乙個環形的雙向鍊錶,鍊錶的每個節點都儲存三個資訊,當前節點的值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...