#include"head.h"
int main(int argc, const char *argv[])
{
Linklist L=NULL;
int n;
datatype e;
printf("please n:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("please enter element:");
scanf("%d",&e);
//头插
// L=insert_heat(e,L);
//尾插
L=insert_rear(e,L);
}
output(L);
int key;
printf("请输入key:");
scanf("%d",&key);
printf("插入的值:");
scanf("%d",&e);
L=insert_by_data(key,e,L);
output(L);
printf("\n");
//按元素修改
printf("修改的位置:");
scanf("%d",&key);
printf("修改的值:");
scanf("%d",&e);
L=modify_by_data(key,e,L);
output(L);
printf("\n");
//排序
Bubble(L);
output(L);
printf("\n");
//简单选择排序
jiandanpaixu(L);
output(L);
text.c
//计算len
int len_Linklist(Linklist L)
{
int c=0;
while(L!=NULL)
{
c++;
L=L->next;
}
return c;
}
//元素查找
int search_by_data(datatype key,Linklist L)
{
if(NULL==L)
return -1;
int pos=0;
while(L!=NULL)
{
pos++;
if(L->data==key)
return pos;
L=L->next;
}
return -1;
}
//元素插入
Linklist insert_by_data(int key,datatype e,Linklist L)
{
int insert_pos=search_by_data(key,L);
if(insert_pos==-1)
return L;
L=insert_by_pos(insert_pos,e,L);
return L;
}
//按元素修改
Linklist modify_by_data(int key,datatype e,Linklist L)
{
int modify_pos=search_by_data(key,L);
if(modify_pos==-1)
return L;
L=modify(L,modify_pos,e);
}
//简单选择排序
void jiandanpaixu(Linklist L)
{
if(NULL==L||L->next==NULL)
return ;
int len=len_Linklist(L);
Linklist p=L;
Linklist q;
int i,j;
for(i=0;i<len-1;i++)
{
p=L->next;
q=L;
for(j=i+1;j<len;j++)
{q=q->next;
if(q->data<p->data)
q=p;
}
if(q!=p)
{
int t=q->data;
q->data=L->data;
L->data=t;
}
L=L->next;
}
}