数据结构--顺序表

来源:互联网 发布:域名要备案才能解析吗 编辑:程序博客网 时间:2024/05/16 08:45

顺序表示最简单的一个数据结构,直接贴代码吧,因为比较简单。

#include <stdio.h>

#include <stdlib.h>


typedef struct sqlist
{
    int *elem;
    int length;
}sqList;




void initList (sqList *l)
{
    l->elem = (int *)malloc(sizeof(int)*10);
    if(!l->elem)
    {


        printf("Erro");
    }
    l->length = 0;
}


void getElem(sqList *l)//初始化
{
    int i,j;
    printf("请输人您想插入元素的个数:");
    scanf("%d",&j);
    printf("请输入%d个数\n",j);
    for(i=0;i<j;i++)
    {
        scanf("%d",&l->elem[i]);
    }
    l->length = j;
    printf("初始化成功!\n");
}


void locateElem(sqList *l,int e)//查询函数
{
    int i;
    for(i=0;i<l->length;i++)
    {
        if(l->elem[i]==e)
        {
            printf("您所查找的数的序号为%d\n",i+1);
        }
    }
}


void listInsert(sqList *l,int i,int e)//插入函数
{
    int j;
    if(i<1||(i>l->length))
    {
        printf("Erro\n");
    }
    else
    {
        for(j=l->length;j>=i;j--)
        {
            l->elem[j] = l->elem[j-1];
        }
        l->elem[i-1] = e;
        l->length ++;
        printf("插入成功");
    }
}


void listDelet(sqList *l,int i)//删除函数
{
    int j;
    if(i<1||(i>l->length))
    {
        printf("Erro\n");
    }
    for(j=i;j<(l->length-1);j++)
    {
        l->elem[j-1] = l->elem[j];
    }
    l->length --;
    printf("删除成功");
}


int main()
{
    sqList L;
    initList(&L);
    getElem(&L);
    locateElem(&L,2);
    listInsert(&L,3,8);
    listDelet(&L,4);

    /**

    测试随机去的数字

   **/


    return 0;
}
0 0
原创粉丝点击