标签:
直接上代码
#include<stdio.h> #include<stdlib.h> //结构定义 typedef struct node{ int data; //数据域 struct node *next; //指针域 }LinkList; //创建单链表 void CreateLinkList(LinkList *L){ L->next = NULL; } //尾插法 void Insert_Tail(LinkList *L,int x){ LinkList *p; p = (LinkList *)malloc(sizeof(LinkList)); p->data = x; p->next = NULL; //查找尾节点 while(L->next!=NULL){ L = L->next; } L->next = p; } //头插法 void Insert_Head(LinkList *L,int x){ LinkList *p; p = (LinkList *)malloc(sizeof(LinkList)); p->data = x; p->next = L->next; L->next = p; } //随机插入 void Insert_Random(LinkList *L,int n,int x){ LinkList *p,*t; int i=1; t = L; p = (LinkList *)malloc(sizeof(LinkList)); p->data = x; while(t&&i<n){ i++; t = t->next; } if(!p||i>n){ return ; } p->next = t->next; t->next = p; } //删除 void DeleteLinkList(LinkList *L,int n){ LinkList *p,*q; int i; i = 1; p = L; while(i<n&&(p->next)){ p = p->next; i++; } if(!(p->next)||i>n){ return ; } q = p->next; p->next = q->next; free(q); } //打印 void DisplayLinkList(LinkList *L){ LinkList *p; p = L->next; while(p!=NULL){ printf("%d ",p->data); p = p->next; } printf("\n"); } int main(void){ LinkList L; int i; CreateLinkList(&L); printf("链头插入:"); for(i=1;i<=10;i++){ Insert_Head(&L,i); } DisplayLinkList(&L); printf("链尾插入:"); for(i=1;i<=10;i++){ Insert_Tail(&L,i); } DisplayLinkList(&L); Insert_Random(&L,11,78); printf("插入后:"); DisplayLinkList(&L); DeleteLinkList(&L,5); printf("删除后:"); DisplayLinkList(&L); return 0; }
标签:
原文地址:http://www.cnblogs.com/tanxing/p/5037305.html