程序员数据结构

单链表

2017-06-30  本文已影响0人  领悟悟悟

LinkList.h

typedef void LinkList;

typedef void LinkListNode;

typedef struct _tag_LinkListNode

{

          _tag_LinkListNode* next;

}TLinkListNode;

LinkList* LinkList_Creater();

void LinkList_Destory(LinkList* List);

void LinkList_Clear(LinkList* List);

int LinkList_Length(LinkList* List);

int LinkList_Insert(LinkList* List, LinkListNode* node, int pos);

LinkListNode* LinkList_Get(LinkList* List, int pos);

LinkListNode* LinkList_Delete(LinkList* List, int pos);


LinkList.cpp

int LinkList_Insert(LinkList* List, LinkListNode* node,int pos)

{

      int ret = 0;

      if (List == NULL)

    {

          ret = -1;

          printf("func LinkList_Insert:err  List == NULL %d\n",ret);

          return ret;

    }

  if (pos > LinkList_Length(List))

  {

      ret = -2;

      printf("func LinkList_Insert:err  pos > LinkList_Length(List)\n  %d",ret);

    return ret;

  }

  TLinkList* tmp = NULL;

  tmp = (TLinkList*)List;

  //TLinkList* current = NULL;

  //current = tmp;

  TLinkListNode* current;

  current = (TLinkListNode*)tmp;

  for (int i = 0; i < pos; i++)

  {

      //current = (TLinkList*)(current->node.next);

      current = current->next;

  }

  ((TLinkListNode*)node)->next = current->next;

  current->next = (TLinkListNode*)node;

  tmp->length++;

  return 0;

}

上一篇 下一篇

猜你喜欢

热点阅读