双向链表函数

头文件

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;
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。✧* ꧁流痕꧂✧*。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值