#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct node{
int data;
struct node *next;
}LinkList;
LinkList *CreatList(int n)//使用头指针创建链表
{
int j,x;
LinkList *head,*p,*r;
head=(LinkList *)malloc(sizeof(LinkList));
head->next=head; r=head;
printf("\n请输入各个元素:");
for(j=1;j<=n;j++){
scanf("%d",&x);
p=(LinkList *)malloc(sizeof(LinkList));
p->data=x;
r->next=p; p->next=head; r=r->next;
}
return head;
}
void GetElem(LinkList *head,int i) //按序列号查找
{
int j=0;
LinkList *p;
p=head;
while(p->next!=head&&j<i){
p=p->next;
j++;
}
if(j==i&&i>0) printf("\t\tThe value is %d.\n",p->data); //找到后,输出该值
else printf("\t\tThe value is not exit.\n");
}
void Get_Elem(LinkList *head,int x) //按值查找
{
LinkList *p;
p=head->next;
while(p->data!=x&&p!=head){
p=p->next;
}
if(p!=head) printf("\t\tThe value is exit.\n",p->data);
else printf("\t\tThe value is not exit.\n");
}
LinkList *Insert_1(LinkList *head,int x,int i) //后插法
{
int j;
LinkList *p,*s;
j=0; p=head;
s=(LinkList *)malloc(sizeof(LinkList));
s->data=x;
while(p->next!=head&&j<i){
p=p->next;
j++;
}
if(j==i&&i>0){
s->next=p->next;
p->next=s;
printf("\n插入成功!\n");
return head;