顺序链表的实现和链表查询的实现

//程序实现链表的创建,链表的查询功能

//create()方法实现了顺序链表的创建,并调用链表查询模块的find()方法

//find()方法实现顺序链表的查询

#include 

#define maxsize 100  //定义一个数组的长度

//定义一个连续数组Sqlist

typedef struct Sqlist{

    int date [maxsize];

    int length;

}Sqlist;


//查看数组中是否有数字x

//如果有,返回在数组的位置,如果没有,则返回0

int find(Sqlist l,int x){

    int j;

    int k = 0;

    for ( j= 1; j<=l.length; ++j){

        if (x==l.date[j]){

            k= j;

        }

        else

            k=0;

    }

    return k;

}




//创建一个顺序链表

//一个数组对应一个指针,指针保存在这个方法中,并不能

//继续使用

void create(Sqlist l){

    int ll;  //顺序链表的长度

    printf("输入链表的长度:\n");

    scanf("%d",&ll);

    l.length = ll;

    

    

//    建立一个顺序链表

    for (int i =1;i<= l.length; i++) {

        printf("请输入第%d个数字:",i);

        scanf("%d",&l.date[i]);

    }

    

//对顺序链表进行查找,查找是否存在一个数值X

//在顺序链表中

    int x;

    printf("请输入一个数字x");

    scanf("%d",&x);

    

//调用查找方法find()

    int k = find(l, x);

    if (k==0) {

        printf("没有这个数字");

    }

    else

        printf("这个数字在数组的位置%d\n",k);

    

}

int main(int argc, const char * argv[])

{

    

//    定义一个顺序数组

    Sqlist l;

//    调用函数

    create(l);


    printf("Hello, World!\n");

    return 0;

}


你可能感兴趣的:(计算机之路)