seqlist *list_create ();//创建
int list_empty(seqlist *p);//判断是否为空
int list_full(seqlist *p);//判断是否为满
void add_list(seqlist *p,datatype g);//添加
void list_out(seqlist *p);//输出
void list_insert_pos(seqlist *p,datatype g,int pos);//按位置增添
void list_delete_pos(seqlist *p,int pos);//按位置删除
int list_search_pos(seqlist *p,int pos);//按位置查找
int list_update_pos(seqlist *p,int pos,datatype g);//按位置修改
int list_search_num(seqlist *p,int num); //按值查找
int list_search_update_num(seqlist *p,int num,datatype g);//按值修改
void list_maopao_sort(seqlist *p);//冒泡排序
void list_quchong(seqlist*p);//去重
void list_free(seqlist *p);//销毁
#ifndef __1_H__
#define __1_H__
#define MAX 50
typedef int datatype;
typedef struct
{
datatype S[MAX];
int len;
}seqlist;
seqlist *list_create ();//创建
int list_empty(seqlist *p);//判断是否为空
int list_full(seqlist *p);//判断是否为满
void add_list(seqlist *p,datatype g);//添加
void list_out(seqlist *p);//展示
void list_insert_pos(seqlist *p,datatype g,int pos);//按位置增添
void list_delete_pos(seqlist *p,int pos);//按位置删除
int list_search_pos(seqlist *p,int pos);//按位置查找
int list_update_pos(seqlist *p,int pos,datatype g);//按位置修改
int list_search_num(seqlist *p,int num); //按值查找
int list_search_update_num(seqlist *p,int num,datatype g);//按值修改
void list_maopao_sort(seqlist *p);//冒泡排序
void list_quchong(seqlist*p);//去重
void list_free(seqlist *p);//销毁
************************************************************************
#include <stdio.h>
#include<stdlib.h>
#include"1.h"
seqlist *list_create()
{
seqlist *p=(seqlist*)malloc(sizeof(seqlist));
if(p==NULL)
{
printf("申请失败\n");
return NULL;
}
printf("申请成功\n");
p->len=0;
return p ;
}
int list_empty(seqlist *p)
{
if(p->len==0)
{
return 1;
}
else
{
return 0;
}
}
int list_full (seqlist *p)
{
if(p->len>=MAX)
{
return 1;
}
else
{
return 0;
}
}
void add_list(seqlist *p,datatype g)
{
if(NULL==p || list_full(p))
{
printf("输入失败\n");
return -1;
}
p->S[p->len]=g;
p->len++;
printf("输入成功\n");
}
void list_out(seqlist*p)
{
if(p==NULL||list_empty(p))
{
printf("输出失败\n");
}
for(int i=0;i<p->len;i++)
{
printf("%d ",p->S[i]);
}
putchar(10);
}
void list_insert_pos(seqlist *p,datatype g,int pos)
{
if(p==NULL||pos>=p->len||pos<0||list_full(p))
{
printf("输入错误\n");
return -1;
}
for(int i=(p->len)-1;i>=pos;i--)
{
p->S[i+1]=p->S[i];
}
p->len++;
p->S[pos]=g;
printf("插入成功\n");
}
void list_delete_pos(seqlist *p,int pos)
{
if(p==NULL||pos<0||pos>=p->len||list_empty(p))
{
printf("输入错误\n");
return -1;
}
for(int i=pos+1;i<p->len;i++)
{
p->S[i-1]=p->S[i];
}
p->len--;
printf("删除成功\n");
}
int list_search_pos(seqlist *p,int pos)
{
int k=p->S[pos];
printf("查找成功:\n%d\n",k);
return 0;
}
int list_update_pos(seqlist *p,int pos,datatype g)//按位置修
{
if(p==NULL||list_empty(p)||pos>=p->len||pos<0)
{
printf("修改失败\n");
}
p->S[pos]=g;
printf("修改成功\n");
}
int list_search_num(seqlist *p,int num)
{
if(p==NULL||list_empty(p))
{
printf("查找失败\n");
return -1;
}
for(int i=0;i<p->len;i++)
{
if(num==p->S[i])
{
printf("位置为:%d\n",i);
return i;
}
}
return 0;
}
int list_search_update_num(seqlist *p,int num,datatype g)
{
if(p==NULL||list_empty(p))
{
printf("查找失败\n");
return -1;
}
for(int i=0;i<p->len;i++)
{
if(num==p->S[i])
{
p->S[i]=g;
}
}
printf("修改成功\n");
return 0;
}
void list_maopao_sort(seqlist *p)//冒泡排序
{
datatype temp=0;
for(int i=0;i<p->len-1;i++)
{
for(int j=0;j<p->len-i-1;j++)
{
if(p->S[j]>p->S[j+1])
{
temp=p->S[j];
p->S[j]=p->S[j+1];
p->S[j+1]=temp;
}
}
}
printf("排序成功\n");
}
void list_select_sort(seqlist *p)//选择排序
{
datatype a=0;
for(int i=0;i<p->len-1;i++)
{
datatype temp=i;
for(int j=i+1;j<p->len;j++)
{
if(p->S[temp]<p->S[j])
{
temp=j;
}
}
a=p->S[i];
p->S[i]=p->S[temp];
p->S[temp]=a;
}
printf("排序成功\n");
}
void list_quchong (seqlist *p)
{
if(p==NULL||p->len<1)
{
printf("无法去重\n");
}
for(int i=0;i<p->len;i++)
{
for(int j=i+1;j<p->len;j++)
{
if(p->S[i]==p->S[j])
{
list_delete_pos(p,j);
j--;
}
}
}
printf("去重成功\n");
}
void list_free (seqlist *p)
{
if(p!=NULL)
{
free(p);
p=NULL;
}
printf("销毁成功\n");
}
********************************************************************
#include <stdio.h>
#include<stdlib.h>
#include"1.h"
int main(int argc, const char *argv[])
{
seqlist *p= list_create();
if(NULL==p)
{
return -1;
}
list_empty(p);
list_full(p);
add_list(p,3);
add_list(p,5);
add_list(p,83);
add_list(p,73);
add_list(p,36);
list_out(p);
list_insert_pos(p,2,3);
list_out(p);
list_delete_pos(p,2);
list_out(p);
list_search_pos(p,3);
list_update_pos(p,2,66);
list_out(p);
list_search_num(p,66);
list_search_update_num(p,3,88);
list_out(p);
list_maopao_sort(p);
list_out (p);
list_select_sort(p);
list_out(p);
add_list(p,36);
add_list(p,36);
add_list(p,73);
add_list(p,77);
add_list(p,88);
list_out (p);
list_quchong(p);
list_out(p);
list_free(p);
free(p);
p=NULL;
return 0;
}