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