头文件
typedef void DLinkList
typedef struct_tag_DLinkListNode
{
struct _tag_DLinkListNode* next;
struct _tag_DLinkListNode* pre;
}DLinkListNode;
DLinkList* DLinkList_Create();
void DLinkList_Destroy(DLinkList* list);
void DLinkList_Clear(DLinkList* list);
int DLinkList_Length(DLinkList* list);
int DLinkList_Insert(DLinkList* list,DLinkListNode* node,int pos);
DLinkListNode* DLinkList_Get(DLinkList* list,int pos);
DLinkListNode* DLinkList_Delete(DLinkList* list,DLinkListNode* node);
DLinkListNode* DLinkList_DeleteNode(DLinkList* list,DLinkListNode* node);
DLinkListNode* DLinkList_Reset(DLinkList* list);
DLinkListNode* DLinkList_Current(DLinkList* list);
DLinkListNode* DLinkList_Next(DLinkList* list);
DLinkListNode* DLinkList_Pre(DLinkList* list);
主函数
int main(int argc, char *argv[])
{
int i=0;
DLinkList* list= DLinkList_Create();
struct Value* pv = NULL:
struct Value v1,v2,v3,v4,v5;
v1.v=1; v2.v =2,v3.v=3; v4.v = 4; v5.v=5;
DLinklist_Insert(list,(DLinkListNode*)&v1,DLinkList_Length(list));
DLinklist_Insert(list,(DLinkListNode*)&v2,DLinkList_Length(list));
DLinklist_Insert(list,(DLinkListNode*)&v3,DLinkList_Length(list));
DLinklist_Insert(list,(DLinkListNode*)&v4,DLinkList_Length(list));
DLinklist_Insert(list,(DLinkListNode*)&v5,DLinkList_Length(list));
for(i=0;i<DLinkList_Length(list);i++)
{
pv = (struct Value*)DLinkList_Get(list,i);
cout<<pv->v;
}
cout<<"\n";
DLinkList_Delete(list,DLinkList_Length(list)-1);
DLinkList_Delete(list,0);
for(i=0;i<DLinkList_Length(list);i++)
{
pv = (struct Value*)DLinkList_Next(list);
cout<< pv->v;
}
cout<<"\n";
DLinkList_Reset(list);
DLinkList_Next(list);
pv = (struct Value*)DLinklist_Current(list);
cout<<pv->v;
DLinkList_DeleteNode(list,(DLinkListNode*)pv);
pv=(struct Value*)DLinkList_Current(list);
cout<<pv->v;
DLinkList_Pre(list);
pv=(struct Value*)DLinkList_Current(list);
cout<<pv->v;
cout<<"Length: "<<DLinkList_Length(list));
DLinkList_Destroy(list);
system("pause");
return 0;
}