链表结点结构
typedef struct LNode
{
int num;
struct LNode* pre;
struct LNode* next;
}LNode,*LinkList;
创建链表 CreatLinkList(int*num,int n);
LinkList CreatLinkList(int*num,int n)
{
int i;
LinkList head,L,node;
head = (LinkList)malloc(sizeof(LNode));
L = head;
for (i = 0; i < n; i++)
{
node = (LinkList)malloc(sizeof(LNode));
node->num = num[i];
L->next = node;
node->pre = L;
L = node;
}
L->next = NULL;
return head;
}
插入链表LinkListInsert(LinkList L,LinkList L1,int pos);
void LinkListInsert(LinkList L,LinkList L1,int pos)
{
for (int i = 0; i < pos; i++)
{
L = L->next;
}
L1->pre = L->pre;
L->pre->next = L1;
L1->next = L;
L->pre = L1;
}
删除链表LinkListDelete(LinkList L, int pos);
void LinkListDelete(LinkList L, int pos)
{
for (int i = 0; i < pos; i++)
{
L = L->next;
}
L->pre->next = L->next;
L->next->pre = L->pre;
}