帮个忙,用C语言填一下数据结构

/*线性表的顺序存储表示(结构)及实现*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20 /* 数组最大界限 */
typedef struct
{ int data[MAXSIZE]; /* 一维数组子域 */
int length; /* 表长度子域,length=last+1 */
}SeqList; /* 顺序存储的结构体类型 */

/* 建立线性表
思想:从键盘输入表长(或元素个数)和每个元素的值
按照顺序输入到顺序表的数据域中*/
void init_list(SeqList *L)
{
int init_list(SeqList *L){
int i;
printf("\n请输入顺序表数据的个数n=");
scanf("%d",&L->length);
printf("\n请输入数据元素值:");
for(i=0;i<L->length;i++)
scanf("%d",&data[i]);

}

} /* init_list */

/* 输出线性表
思想:按照元素输入将顺序表中的值依次输出*/
void out_list(SeqList L)
{

} /* out_list */

/* 在线性表的第i个位置插入元素e
思想:从键盘输入要插入的数据的位置和值;
判断位置是否超过最大界限;
判断位置是否在1和表长之间;
从最后一个元素到要插入的位置上的数据依次后移;
将值插入;
表长增1;*/
void insert_sq(SeqList *L)
{

} /* insert_sq */

/* 删除第i个元素,返回其值
思想:输入要删除数据的位置;
判断顺序表是否为空;
判断删除的位置是否在1和表长之间;
将要删除的位置上的元素到最后一个元素向前移动1位;
表长减1;*/
void delete_sq(SeqList *L)
{

} /* delete_sq */

/* 查找值为 e 的元素,返回它的位置
思想:输入要查找的数据;
从第一个元素开始向后查找每一个元素,判断是否是要找的数据;
找到输出它在顺序表中的位置;
未找到输出没有找到*/
void locat_sq(SeqList *L)
{

}/* locat_sq */

/* 主函数 */
main()
{
SeqList L;
init_list(&L);
out_list(L);
insert_sq(&L);
out_list(L);
delete_sq(&L);
out_list(L);
locat_sq(&L);
} /* main */

/*线性表的顺序存储表示(结构)及实现*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20 /* 数组最大界限 */
typedef struct
{ int data[MAXSIZE]; /* 一维数组子域 */
int length; /* 表长度子域,length=last+1 */
}SeqList; /* 顺序存储的结构体类型 */

/* 建立线性表
思想:从键盘输入表长(或元素个数)和每个元素的值
按照顺序输入到顺序表的数据域中*/

int init_list(SeqList *L)
{
int i;
printf("\n请输入顺序表数据的个数n=");
scanf("%d",&L->length);

if(L->length>MAXSIZE+1)
return 0;
printf("\n请输入数据元素值:");
for(i=0;i<L->length;i++)
scanf("%d",&L->data[i]);
return 1;
}

/* init_list */

/* 输出线性表
思想:按照元素输入将顺序表中的值依次输出*/
void out_list(SeqList L)
{

int i; printf("线性表为:\n");
for(i=0;i<L.length;i++)
printf("%d\t",L.data[i]);
printf("\n");
} /* out_list */

/* 在线性表的第i个位置插入元素e
思想:从键盘输入要插入的数据的位置和值;
判断位置是否超过最大界限;
判断位置是否在1和表长之间;
从最后一个元素到要插入的位置上的数据依次后移;
将值插入;
表长增1;*/
int insert_sq(SeqList *L,int i,int e)
{

int j; if(i>L->length+1||L->length==MAXSIZE+1||i<1)
{
printf("插入位置有误或线性表已满\n");
return 0;
}
for(j=L->length-1;j>i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=e;
return 1;
} /* insert_sq */

/* 删除第i个元素,返回其值
思想:输入要删除数据的位置;
判断顺序表是否为空;
判断删除的位置是否在1和表长之间;
将要删除的位置上的元素到最后一个元素向前移动1位;
表长减1;*/
int delete_sq(SeqList *L,int i,int *e)
{

int j;if(i>L->length||i<1)
{
printf("删除位置有误或线性表已满\n");
return 0;
}
*e=L->data[i-1];
for(j=i-1;j<L->length-1;j--)
L->data[j]=L->data[j+1]; return 1;
} /* delete_sq */

/* 查找值为 e 的元素,返回它的位置
思想:输入要查找的数据;
从第一个元素开始向后查找每一个元素,判断是否是要找的数据;
找到输出它在顺序表中的位置;
未找到输出没有找到*/
int locat_sq(SeqList *L,int e)
{
int pos;

for(pos=0;pos<L->length-1;pos++)
if(L->data[pos]==e)
return ++pos;
return 0;
}/* locat_sq */

/* 主函数 */
main()
{
int e;
SeqList L;
init_list(&L);
out_list(L);
insert_sq(&L,2,2);
out_list(L);
delete_sq(&L,2,&e);
out_list(L);
locat_sq(&L,2);
} /* main */

以上程序,编译无误追问

main中的2是什么意思

out_list(L);
delete_sq(&L,2,&e);
out_list(L);

追答

是我随便填的一个数,可以换成其他数。如insert_sq(&L,2,2); 就是在线性表第二个位置(第一个2的意思)插入整数2(第二个2的意思);delete_sq(&L,2,&e); 这个事删除线性表第二个位置的数,并把这个数的值赋给e,由于要对e做更改,所以用指针;locat_sq(&L,2); 意思是找到线性表中数字2的位置,如果没有,函数返回 0,如果想输出可以这样
if(locat_sq(&L,2))
printf("要找的数位置是%d\n",locat_sq(&L,2))
else
printf("线性表中没有要找的数!\n")
就可以很清楚的表示了。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答