数据结构———顺序表的查找、删除、和插入

查找:            假设有7个元素
1,定义顺序表的结构体
2。与顺序表的元素一一比较、若一致,则返回位置,不一致,返回0.

# define maxsize 100

typedef struct{
    int data[maxsize];
    int length;
}Sqlist;

int find(Sqlist L;int e)
{
    int i;
    for(i=0;i

插入(插入有序的顺序表):1。定义顺序表 2。找到某个元素的位置 3.把位置以后的元素全部向后移动一位  4。把新元素插入位置 5.顺序表的长度+1

# define maxsize 100

typedef struct{
    int data[maxsize];
    int length;
}Sqlist;

int find(Sqlist L,int e)
{
    int i;
    for(i=0;iL.length+1||L.length>maxsize)
        //位置存在不合理或者顺序表长度大于宏定义的常量
    {
        printf("ERROR!\n");
        return 0;
    }
    int j;
    for(j=L.length-1;j>=p,--i)
    {
        L.data[j+1]=L.data[j];
    }
    L.data[p]=e;
    ++(L.length);
    return 1;
}

 

删除:1.定义顺序表结构 2.把位置后面的元素前移 3。顺序表的长度-1

# define maxsize 100

typedef struct{
    int data[maxsize];
    int length;
}Sqlist;

int delelem(Sqlist & L,int i,int & e)//i是位置,e是元素
{
    if(i<0||i>L.length-1||L.length>maxsize)//注意这个i>L.length-1是因为不能删除尾元素
        //位置存在不合理或者顺序表长度大于宏定义的常量
    {
        printf("ERROR!\n");
        return 0;
    }
    int j;
    e=L.data[p];
    for(j=p;j

完美     顺序表的操作是++i;--i

你可能感兴趣的:(C,数据结构)