数据结构之顺序链表

版权声明:转载请注明出处 https://blog.csdn.net/qq_37689106/article/details/82950950
#include<stdio.h>
#include<stdlib.h>
#define N  32
#include<string.h>
typedef struct seqlist   
{
    int data[N];
    int last;
}seqlist_t;

seqlist_t * seqlist_creat()  //初始化一个空的顺序表 ;
{
    seqlist_t *sl = (seqlist_t *)malloc(sizeof(seqlist_t));
    memset(sl,0,sizeof(seqlist_t));
    sl->last = -1;			//初始下标为 -1 ;
    return sl;
}

void seqlist_insert(seqlist_t *sl,int value)   //在顺序表中插入数据
{
    sl->last ++;
    sl->data[sl->last%N] = value;

}

void seqlist_remove(seqlist_t *sl,int value)  //删除表中所指定的数据
{
    int i,j,num = -1;
    for(i=0;i<=sl->last;i++)
    {
        if (sl->data[i] == value)		//	找到要删除的值
        {
            num = i;
        for(j=num;j<sl->last;j++)		//往后全部往前面移动覆盖;
        {
            sl->data[j] = sl->data[j+1];
        }
        if (num != -1)                 //有找到值  总个数就减去1
        {
            sl->last --;
            num = -1;
        }

        }

    }
}

seqlist_t * seqlist_modify(seqlist_t *sl,int oldval,int newval)  //修改序列的值
{
    int i;
    for(i=0;i<sl->last;i++)
    {
        if (sl->data[i] == oldval)
        {
            sl->data[i] = newval;
        }
    }
    return sl;
}


int seqlist_serach(seqlist_t *sl,int value)  //通过返回值去判断值是否在序列中
{
    int i;
    int ret;
    for(i=0;i<sl->last;i++)
    {
        if (sl->data[i] == value)
        {   ret = 1;
            break;
        }
        else
            ret =-1;
    }
    return ret;
}

void seqlist_show(seqlist_t *sl)     //显示全部内容
{
    int i;
    for(i=0;i<=sl->last;i++)
    {
        printf("%-3d",sl->data[i]);
    }
    printf("\n");
}



int main()
{
    int i;
    int ret;
    seqlist_t *SL = seqlist_creat();
    for(i=0;i<32;i++)
    {
    seqlist_insert(SL,i+1);
    }
    seqlist_show(SL);
    seqlist_remove(SL,5);
    seqlist_show(SL);
    SL = seqlist_modify(SL,2,35);
    seqlist_show(SL);
    ret = seqlist_serach(SL,35);
    if (ret ==1)
    {
        printf("have\n");
    }
    else
    {
        printf("have no\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_37689106/article/details/82950950