簡單雙向鍊錶C C 版

2021-05-03 21:48:05 字數 1676 閱讀 2620

最近複習演算法與資料結構時,看到雙向鍊錶,其操作方便,兩個指標域方便查詢,但是發現很多給出的示例都是迴圈雙向鍊錶,當然比普通雙向鍊錶跟有效,但是作為學習之用,也應該了解會寫簡單的無環雙向鍊錶,在網上發掘資料很少,故把自己寫的乙個簡單的程式貼出來供初學者看看,希望大家提意見:

#include

#include

using namespace std;

#ifdef _msc_ver

#pragma pack(push, 4)

#endif

typedef struct _doublelistdoublelist, *pdoublelist;

#ifdef _msc_ver

#pragma pack(pop, 4)

#endif

pdoublelist initiallist(void);

void insertnewnode(pdoublelist h, unsigned int data);

void deleteonenode(pdoublelist h, unsigned int data);

void clearlist(pdoublelist h);

void showlist(pdoublelist h);

unsigned int countnode(pdoublelist h);

const int len = sizeof(doublelist);

//main function

int main(int argc, char **argv)

showlist(head);

cout<<"the list node is:"<>data;

deleteonenode(head, data);

showlist(head);

clearlist(head);

showlist(head);

system("pause");

return 0;

}//initialize the head node

pdoublelist initiallist(void)

//insert a new node to the list

void insertnewnode(pdoublelist h, unsigned int data)

//delete a node from the list

void deleteonenode(pdoublelist h, unsigned int data)

//end of while

if (pnext == null)

else

return;

}//clear the list

void clearlist(pdoublelist h)

//end of while

h->rchild = h->lchild = null;

cout<<"begin to clear...."void showlist(pdoublelist h)

//end of while

cout}//count the number of the list

unsigned int countnode(pdoublelist h)

//end of while

return sum;

}

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...

雙向鍊錶的簡單實現

雙向鍊錶的特點是 第乙個元素的 prev 是none 1 雙向鍊錶 2class node 3def init self,node none,prev none,next none 4 注意順序,因為例項化,一般不會關鍵字傳參,如果node none 1 1 是給node形參的,如果形參列表不同,則...

雙向鍊錶(鍊錶)

雙向鍊錶 每個節點包含指向後繼節點的指標和指向前驅節點的指標。繼承關係圖 實體圖 duallinklist.h duallinklist 雙向鍊錶類模板 成員變數 node 節點實體 m header 頭節點 m length 鍊錶長度 m step 步進長度 m current 當前節點前乙個節點...