文档介绍:专业序号姓名日期
实验2 顺序表
【实验目的】
利用C语言实现顺序表的各个函数
【实验内容】
对下列程序每行进行注释,并指出指针符* 、地址符&具体的意义。
建立一个任意英文字母组成的线性表
补充顺序表其他功能函数 P13-14(导学)
#include<>
#include<>
# define maxsize 50
struct sqlist
{
int data[maxsize];
int key;
int size;
};
void setnull(struct sqlist *p) /*装入表*/
{
p->size=0;
}
int length(struct sqlist *p) /*表长度*/
{
return(p->size);
}
void get(struct sqlist *p,int i) /*取得一个元素*/
{
if (i<1 && i>p->size)
printf("错误");
else
printf("该序号对应的元素为:%d \n",p->data[i]);
}
void locate(struct sqlist *p,int x) /*查找元素*/
{
int i=0;
while (i<p->size && p->data[i]!=x)
i++;
if (i==p->size )
printf("错误");
else printf("该元素第一次出现的位置:%d \n",i);
}
void insert(struct sqlist *p,int i,int x)
{
int j;
if (i<1 && i>p->size+1)
printf("位置不正确不能行插入\n");
else
{
p->size++;
for (j=p->size;j>=i;j--)
p->data[j]=p->data[j-1];
p->data[i]=x;
}
printf("线性表为:\n");
for(j=1;j<=p->size-1;j++)
printf("%d->",p->data[j]);
printf("%d\n",p->data[p->size]);
}
void listdelete(struct sqlist *p,int i)
{
int j;
if (i<1 || i>p->size)
printf("错误");
else
{
for (j=i;j<p->size;j++)
p->data[j]=p->data[j+1];
p->size--;
}
printf("此线性表为:");
for (i=1;i<=p->size-1;i++)
printf("%d->",p->data[i]);
printf("%d\n",p->data[p->size]);
}
void insertsort(struct sqlist *p)
{
int i,j;
int