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;
}