c語言實現雙向迴圈鍊錶以及部分函式功能

2021-09-18 06:07:42 字數 1910 閱讀 7390

雙向鍊錶的結點裡包含乙個指向上乙個元素的pre指標,乙個指向下乙個元素的next指標,而要實現迴圈只需要將頭節點的pre指向最後乙個節點,而最後後乙個節點的next指向頭節點。下面是**實現部分。

首先時標頭檔案部分

#pragma once

#include #include #include #include //熟悉雙向鍊錶的結構,並實現帶頭結點的雙向迴圈鍊錶的以下基本操作:

typedef int dldatatype;

typedef struct dlistnode

dlnode;

// 初始化雙向鍊錶

void dlistinit(dlnode** phead);

// 尾插

void dlistpushback(dlnode* phead, dldatatype data);

// 尾刪

void dlistpopback(dlnode* phead);

// 頭插

void dlistpushfront(dlnode* phead, dldatatype data);

// 頭刪

void dlistpopfront(dlnode* phead);

// 在鍊錶中查詢值為data的節點,找到返回節點的位置

dlnode* dlistfind(dlnode* phead, dldatatype data);

// 在pos位置(插入成功後新節點實際在pos前)插入值為data的元素

void dlistinsert(dlnode* pos, dldatatype data);

// 刪除pos位置的節點

void dlisterase(dlnode* pos);

// 將鍊錶中的所有節點清空

void dlistclear(dlnode* phead);

// 銷毀鍊錶

void dlistdestroy(dlnode** phead);

接下來是各個函式的功能實現部分

#define   _crt_secure_no_warnings

#include"dlist.h"

// 初始化雙向鍊錶

void dlistinit(dlnode** phead)

// 尾插

void dlistpushback(dlnode* phead, dldatatype data)

// 尾刪

void dlistpopback(dlnode* phead)

// 頭插

void dlistpushfront(dlnode* phead, dldatatype data)

// 頭刪

void dlistpopfront(dlnode* phead)

// 在鍊錶中查詢值為data的節點,找到返回節點的位置

dlnode* dlistfind(dlnode* phead, dldatatype data) }}

// 在pos位置(插入成功後新節點實際在pos前)插入值為data的元素

void dlistinsert(dlnode* pos, dldatatype data)

// 刪除pos位置的節點

void dlisterase(dlnode* pos)

// 將鍊錶中的所有節點清空

void dlistclear(dlnode* phead)

phead->_pnext = phead;

phead->_ppre = phead;

}// 銷毀鍊錶

void dlistdestroy(dlnode* phead)

free(phead);

phead = null;

}

C語言實現雙向迴圈鍊錶

list 雙向迴圈鍊錶,帶頭指標 struct list node 初始化頭指標 void list init head struct list node head 量表是否為空 是返回1,否返回0 int list is empty const struct list node head 鍊錶遍歷...

C語言實現雙向迴圈鍊錶

list 雙向迴圈鍊錶,帶頭指標 struct list node 初始化頭指標 void list init head struct list node head 量表是否為空 是返回1,否返回0 int list is empty const struct list node head 鍊錶遍歷...

c語言實現雙向迴圈鍊錶

雙鏈表實現直通車 單迴圈鍊錶實現直通車 雙鏈表的實現與上面兩者都有大量相似之處。實現功能部分 雙迴圈鍊錶的實現 基於雙鏈表實現,大體區別是尾節點後繼指向頭節點,頭節點的前驅指向尾節點 主要區別還是列印,插入節點 首 中 尾 前插 後插.刪除節點 首 尾 需要特別注意 include include ...