顺序表的增删查改&&各类排序问题

本文探讨了静态顺序表的增删查改,并详细解析了冒泡排序、选择排序、插入排序和二分查找这四种排序和查找算法的工作原理及处理过程。
摘要由CSDN通过智能技术生成

一,静态顺序表增删查改

#define MAX_SIZE 10  
typedef int DataType;  

typedef struct SeqList  
{  
    DataType array[MAX_SIZE];  
    size_t size;  
}SeqList;
void Print(SeqList* seq)  
{  
    assert(seq);  
    for (size_t i = 0; i <(seq->size); i++)  
    {  
        printf("%d ", seq->array[i]);  
    }  
    printf("\n");  
}  

void InitSeqList(SeqList* seq)  
{  
    assert(seq);  

    memset(seq->array, 0, sizeof(DataType)*(MAX_SIZE));  
    seq->size = 0;  
}  
void DestorySeqList(SeqList* seq)  
{  
    assert(seq);  
    seq->size = 0;  
}  
void PushBack(SeqList* seq, DataType x)  
{  
    assert(seq);  
    if (seq->size >= MAX_SIZE)  
    {  
        printf("The SeqLIst is full\n");  
        return;  
    }  
    seq->array[seq->size] = x;  
    seq->size++;  
}  

void PopBack(SeqList* seq)  
{  
    assert(seq);  
    if (seq->size <= 0)  
    {  
        printf("The SeqList is empty\n");  
        return;  
    }  
    seq->size--;  
}  

void PushFront(SeqList* seq, DataType x)  
{  
    assert(seq);  
    if (seq->size >= MAX_SIZE)  
    {  
        printf("The SeqLIst is full\n");  
        return;  
    }  
    int end = seq->size;  
    while (end >= 0)  
    {  
        seq->array[end] = seq->array[end-1];  
        end--;  
    }  
    seq->size++;  
    seq->array[0] = x;  
}  

void PopFront(SeqList* seq)  
{  
    assert(seq);  
    if (seq->size <= 0)  
    {  
        printf("The SeqList is empty\n&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值