/*线性表的顺序存储表示(结构)及实现*/
#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 */
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")
就可以很清楚的表示了。