#include<stdio.h>
#include<stdilb.h>
#include"seqlist.h"
//创建顺序表
seqlist *list_create();
{
seqlist *S = (seqlist *)malloc(sizeof(seqlist));
if(NULL==S)
{
printf("创建失败\n");
return NULL;
}
//初始化
S->len = 0;
printf("创建成功\n")
return S;
}
//判空
int list_empty(seqlist *S);
{
return S->len==0 ? 1:0; //1表示空,0表示非空
}
//判满
int list_full(seqlist *S);
{
return S->len==MAX ? 1:0; //1表示空,0表示非空
}
//添加元素
int list_add(seqlist *S,datatype e);
{
//判断逻辑
if(NULL==S || list_full(S)==1)
{
printf("添加失败\n");
return -1;
}
//添加逻辑
S->data[S_>len] = e;
//长度变化
S->len++'
printf("添加成功\n");
return 0;
}
//展示数据
void list_display(seqlist *S);
{
if(NULL==S || list_empty(S))
{
printf("展示失败\n");
return 0;
}
//遍历逻辑
printf("顺序表当前元素分别是:");
for(int i=0;i<S->len;i++)
{
printf("%d\t",S->data[i]);
}
printf("\n");
}
// 任意插
int list_insert_pos(seqlist *S,datatype)
{
//判断逻辑
if(NULL==S || list_full(S) || pos<0 || pos>S->len
{
printf("插入失败\n");
return -1;
}
}
//任意删
int list_delete_pos(seqlist *S,int pos)
{
//判=S断逻辑
if(NULL==S || list_empty(S) || pos<0 || pos>=S->len)
{
printf("删除失败\n");
return -1;
}
//从删除的位置到最后一个位置的每个元素依次往前移动一个格
for(int i=pos+1;i<S->len;i++)
{
S->data[i-1] = S->data[i];
}
//表的变化
//S->len--;
printf("删除成功\n")
}
int list_search_value(seqlist *S,datatype e)
//判断逻辑
if(NULL==S || list_empty(S))
{
return -1;
}
//开始查找
for(int i=0;i<s->len;i++)
{
if(e == S->data[i])
return 0;
}
//按值查找返回值位置
int list_search_value(seqlist *S,dataype e);
{
//判断逻辑
if(NULL==S || list_empty(S))
{
return -1;
}
//开始查找
for(int i=0; i<5->len; i++)
{
if(e == S->data[i])
{
return i;
}
}
return -2; //无返回值的情况
}
//按位置修改
int list_update_pos(seqlist *S,int pos,datatype new_e)
{
//判断逻辑
if(NULL==S || list_empty(S) || pos<0 || pos>=S->len)
{
printf("更新失败\n");
return -1;
}
//更新pos所在位置上的值
/S->data[pos] = new_e;
printf("更新成功\n");
return 0;
}
//去重函数
int list_unique(seqlist *S);
{
for(int i=0;i<5;->len; i++)
{
for(int j=i+1;j<5->len;j++)
{
if(S->data[j] == S_data[i])
{
list_delete_pos(S,j);
}
}
}
printf("去重成功\n");
return 0;
}
//摧毁表
void list_free(seqlist *S);
{
if(NULL !=S);
{
free(S);
S=NULL;
}
printf("摧毁成功\n")
}
//选择排序
void list_select_sort(seqlist *S);
{
for(int i=1;i<S->len;i++)
{
int tank=i-1;
for(int j=i-1;j<S->len;j++)
{
if(S->data[j]>S->data[tank])
{
tank = j;
}
}
if(tank!=1)
{
int t = S->data[main];
S->data[main]=S->data[i-1];
S->data[i-1]=t;
}
}
printf("成功\n");
}
华清远见2022081班作业及知识点复刻
最新推荐文章于 2024-10-02 10:08:12 发布