#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
int data;//数
struct Node *next;//指针
}*Linklist,Node;//node是指向结构体的一个结构体变量linklist指向链表的指针
Linklist creat(int n)//建立
{
Linklist head,r,p;
int x,i;
head
=(Node
*)malloc(sizeof(Node
));//开辟空间
r=head;//r指向头
for(i=n;i>0;i--)
{
p
=(Node
*)malloc(sizeof(Node
));
p->data=x;
r->next=p;
r=p;
}
r->next=NULL;
return head;
}
void output(Linklist head)//输出
{
Linklist p;
p=head->next;
do{
p=p->next;
}while(p);
}
void find(Linklist head,int x)//寻找
{
int i=0,j=0;
Linklist p;
p=head;
while(p){
if(p->data==x){
printf("元素存在,他在线性表的第%d个位置上\n",i
++);
p=p->next;
j=1;}
else{
p=p->next;
i++;}
}
if(j==0)
}
void insert(Linklist head,int i,int x)//插入
{
int j=0;
Linklist p,s;
p=head;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1)
s
=(Linklist
)malloc(sizeof(Node
));
s->data=x;
s->next=p->next;
p->next=s;
}
void delete_ith(Linklist head,int i)//删除按位置
{
int j=0;
Linklist p;
p=head;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1)
p->next=p->next->next;
}
void delete1(Linklist head,int i)//删除按照元素
{
Linklist p;
p=head;
while(p->next)
{
if(p->next->data==i){
p->next=p->next->next;
}
else{
p=p->next;
}
}
}
void length(Linklist head)//长度
{ int j=0;
Linklist p;
p=head->next;
while(p)
{
p=p->next;
j++;
}
}
void null(Linklist head)//判断是否为空
{ int j=0;
Linklist p;
p=head->next;
while(p)
{
p=p->next;
j++;
}
if(j==0)
else
}
/*void free(Linklist head)
{
Linklist p;
p=head;
while(p)
{
p=p->next;
delete head;
head=p;
}
}*/
void printi(Linklist head,int i)//
{
int j=0;
Linklist p;
p=head;
while(p&&j<i) //找到第i个元素
{
p=p->next;
j++;
}
}
void main()
{
Linklist head;
int n,x,position,i,j,a;
head=creat(n);
output(head);
find(head,x);
printf("输入你要插入的数x和他的pos位置\n");
scanf("%d%d",&x
,&position
);
insert(head,position,x);
output(head);
delete_ith(head,i);
output(head);
null(head);
//free(head);
output(head);
output(head);
delete1(head,a);
output(head);
}