作业。。。。。

顺序表按元素删除

参数:删除元素,顺序表

1.调用元素查找的函数

4.根据下表删除 delete_sub(list,sub);

复制代码
//删除元素                                                        
void delete_element(int element, Sqlist *list)                    
{                                                                 
    if (NULL == list)                                             
    {                                                             
        printf("delete_element error: list is NULL\n");           
        return;                                                   
    }                                                             
                                                                  
    int sub = search_sub_sqlist(element, list);                   
    if (sub != -1)                                                
    {                                                             
        delete_sub(list, sub);                                    
        printf("Element %d deleted from the list\n", element);    
    } else                                                        
    {                                                             
        printf("Element %d not found in the list\n", element);    
    }                                                             
}                                                                 

顺序表按元素修改

参数:

1.调用元素查找的函数

4.根据下表修改update_sub(list,sub);

复制代码
 //元素修改                                                        
 void update_sub(Sqlist *list, int old_element, int new_element)   
 {                                                                 
     int pos = search_sub_sqlist(old_element, list);               
     if (pos == SUCCESS)                                           
     {                                                             
         for (int i = 0;i <list->len; i++)                       
         {                                                         
             if (list->data[i] == old_element)                     
             {                                                     
                 change_sub_sqlist(new_element, i, list);          
                 break;                                            
             }                                                     
         }                                                         
     } else                                                        
     {                                                             
         printf("Element %d not found in the list.\n", old_element)
     }                                                             
 }                                                                 

/顺序表按元素查找

参数:顺序表,查找的元素

1.判断顺序表是否位空

2.判断顺序表是否创建

3.循环顺序表的元素,如果存在则返回下表sub,否则-1

复制代码
//顺序表按元素查找                                               
int search_sub_sqlist(int sub, Sqlist *list)
{
    // 判断顺序表是否为空
    if (NULL == list || list->len == 0) 
    {
        printf("search_sub_sqlist error: List is empty or not cre
        return -1;
    }

    // 循环顺序表的元素
    for (int i = 0; i< list->len; i++)
    {
        if (list->data[i] == sub)
        {
            printf("Element %d found at position %d\n", sub, i);
            return i; // 返回元素的下标
        }
    }

    printf("Element %d not found\n", sub);
    return -1; // 未找到元素,返回-1

顺序表去重

复制代码
​

​int remove_same(Sqlist *list)                
{                                            
    //1.判断顺序表为空                       
    //2.判断顺序表是否创建                   
    if(NULL==list || 0==list->len)           
        return FALSE;                        
    //3.去重                                 
    for(int i=0;i<list->len;i++)             
    {                                        
        for(int j=i+1;j<list->len;j++)       
        {                                    
            if(list->data[i]==list->data[j]) 
            {                                
                //删除j对应的元素            
                delete_sub(list,j);          
                j--;                         
            }                                
        }                                    
    }                                        
    return SUCCESS;                          
}                                            

顺序表排序 (冒泡、选择排序)

复制代码
//冒泡排序:                                         
void bubble_sort(Sqlist *list)                       
{                                                    
    if (NULL == list || list->len <= 1)              
    {                                                
        printf("bubble_sort error\n");               
        return;
    }                                                
                                                     
    for (int i = 0; i < list->len - 1; i++)          
    {                                                
        for (int j = 0; j < list->len - 1 - i; j++)  
        {                                            
            if (list->data[j] < list->data[j + 1])   
            {                                        
                                                     
                datatype temp = list->data[j];       
                list->data[j] = list->data[j + 1];   
                list->data[j + 1] = temp;            
            }                                        
        }                                            
    }                                                
}                                                    

                                                          
//选择排序;
void selection_sort(Sqlist *list)                         
{                                                         
    if (NULL == list || list->len<= 1)                    
    {                                                     
        printf("selection_sort error\n");                 
        return;                                           
    }                                                     
                                                          
    for (int i = 0; i< list->len - 1; i++)                
    {                                                     
        int min_index = i;                                
        for (int j = i + 1; j < list->len; j++)           
        {                                                 
            if (list->data[j] <list->data[min_index])    
            {                                             
                min_index = j;                            
            }                                             
        }                                                 
                                                          
        if (min_index != i)                               
        {                                                 
            datatype temp = list->data[i];                
            list->data[i] = list->data[min_index];        
            list->data[min_index] = temp;                 
        }                                                 
    }                                                     
}                                                         

顺序表释放

复制代码
​
Sqlist* free_fun(Sqlist *list) 
{                              
        //1.判断顺序表是否创建 
    if(NULL==list )            
        return NULL;           
                               
    free(list);                
    list=NULL;                 
    return list;               
                               
}                              

​
相关推荐
love530love1 小时前
升级到 ComfyUI Desktop v0.7.0 版本后启动日志报 KeyError: ‘tensorrt‘ 错误解决方案
开发语言·windows·python·pycharm·virtualenv·comfyui·comfyui desktop
Davina_yu8 小时前
Windows 下升级 R 语言至最新版
开发语言·windows·r语言
豆是浪个10 小时前
Linux(Centos 7.6)命令详解:ps
linux·windows·centos
故事不长丨11 小时前
C#集合:解锁高效数据管理的秘密武器
开发语言·windows·c#·wpf·集合·winfrom·字典
不染尘.13 小时前
进程切换和线程调度
linux·数据结构·windows·缓存
love530love13 小时前
EPGF 新手教程 12在 PyCharm(中文版 GUI)中创建 Poetry 项目环境,并把 Poetry 做成“项目自包含”(工具本地化为必做环节)
开发语言·ide·人工智能·windows·python·pycharm·epgf
ejjdhdjdjdjdjjsl15 小时前
掌握C#控件属性与事件实战
windows
微凉的衣柜17 小时前
Windows Server 使用 Nginx 反向代理实现域名访问内网 Gradio 应用
运维·windows·nginx
满天星830357717 小时前
【C++】特殊类设计
c++·windows
白驹过隙^^18 小时前
windows通过docker compose部署oktopus服务
linux·windows·tcp/ip·docker·容器·开源