#include"stdio.h"
#include"stdlib.h"
typedef struct Node
{
int data;
struct Node *next;
}list,*ptr_list;
typedef struct List
{
int len;
ptr_list head;
}List;
bool delete_node(List *L,int pos)
{
if(pos==0)
{return 0;}
ptr_list p,q;
int i;
p=L->head;
for(i=0;i<pos;i++)
{
q=p;
p=p->next;
}
q->next=p->next;
L->len--;
return 1;
}
bool insert_node(List* L,int data,int pos)
{
ptr_list current=(list*)malloc(sizeof(list));
current->data=data;
if(pos==0)
{return 0;}
ptr_list p,q;
int i;
p=L->head;
for(i=0;i<pos;i++)
{
q=p;
p=p->next;
}
q->next=current;
current->next=p;
return 1;
}
bool update(List* L,int data,int pos)
{
if(pos==0)
{return 0;}
ptr_list p;
int i;
p=L->head;
for(i=0;i<pos;i++)
{
p=p->next;
}
p->data=data;
return 1;
}
void inti(List *L,int len)
{
int i;
L->head=(list *)malloc(sizeof(list));
L->len=len;
ptr_list p=L->head;
for(i=0;i<len;i++)
{
ptr_list temp=(list *)malloc(sizeof(list));
p->next=temp;
temp->data=i;
p=temp;
}
}
void print(List L)
{
int len=L.len;
int i;
ptr_list p=L.head;
p=p->next;
for(i=0;i<len;i++)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
List L;
inti(&L,10);
print(L);
delete_node(&L,2);
print(L);
insert_node(&L,5555,2);
print(L);
update(&L,4444,3);
print(L);
}
教学版 链表操作 呵呵。。闲来之作 欢迎板砖,水军。