嵌入式学习-数据结构-Day3
一、作业
1.顺序表按元素查找(成功返回下标)
2.顺序表按元素删除(如果存在重复则只能删除第一个)
3.顺序表按元素修改
4.顺序表去重顺序表排序
5.顺序表释放
函数体
//查找元素是否存在
int search_key(sqlist* list,datatype key)
{
if(NULL==list||empty(list))
return FALSE;
for(int i=0;i<list->len;i++)
{
if(key==list->data[i])
return i;
}
return FALSE;
}
//查找元素并删除
int del_key(sqlist* list,datatype key)
{
int index=search_key(list,key);
if(index==FALSE)
return FALSE;
else
del_index(list,index);
return SUCCESS;
}
//查找元素并修改
int change_key(sqlist* list,datatype key,datatype element)
{
int index=search_key(list,key);
if(index== -1)
return FALSE;
else
updata_index(list,index,element);
return SUCCESS;
}
//去重
int Remove(sqlist *list)
{
if(NULL==list||empty(list))
return FALSE;
for(int i=0;i<list->len;i++)
{
for(int j=i+1;j<list->len;j++)
{
if(list->data[i]==list->data[j])
{
del_index(list,j);
j--;
}
}
}
return SUCCESS;
}
//冒泡排序
int Bubble(sqlist* list)
{
if(NULL==list||empty(list))
return FALSE;
for(int i=1;i<list->len;i++)
{
for(int j=0;j<list->len-i;j++)
{
if(list->data[j]>list->data[j+1])
{
datatype t=list->data[j];
list->data[j]=list->data[j+1];
list->data[j+1]=t;
}
}
}
return SUCCESS;
}
//释放内存
int free_space(sqlist* list)
{
if(NULL==list)
return FALSE;
list->len=0;
}
运行结果