c语言链表操作
#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); }
教学版 链表操作 呵呵。。闲来之作 欢迎板砖,水军。