某班级某科目的成绩为:78,98,65,85,…,采用顺序存储方式,实现对此成绩表的创建、插入、删除、查找等操作。
编写程序实现顺序表定义、初始化、插入、删除、查找算法,并编写应用测试。应用测试为基于顺序表的简易学生成绩管理。
为了简化问题,此处成绩表只包含所有学生的某科目成绩信息
部分代码
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define MaxSize 100
typedef int DataType;
//定义顺序表结构体
typedef struct node
{
DataType data[MaxSize];
int Length;
}SeqList,*PSeqList;
PSeqList Init_SeqList();//初始化函数声明
int Insert_SeqList(PSeqList PL,int i,DataType x);//插入数字1函数声明
void Print_SeqList(PSeqList PL); //函数声明
int main(void)
{
int i;
DataType x;
PSeqList PL=Init_SeqList();
printf("请输入五个数:\n");
for(i=1;i<=5;i++)
{
scanf("%d",&x);
Insert_SeqList(PL,i,x);
}
Print_SeqList(PL);
return 0;
}
PSeqList Init_SeqList()//初始化,函数定义
{
//分配空间
PSeqList PL;
PL=(PSeqList)malloc(sizeof(SeqList));
if(PL)
PL->Length=0;
return PL;
}
int Insert_SeqList(PSeqList PL,int i,DataType x)//插入字符
{
int j;
//合法检查
if(!PL)//PL==NULL
{
printf("空表\n");
return -1;
}
if(PL->Length>=MaxSize)//超过最大长度
{
printf("表满了\n");
return -2;
}
if(i<1||i>PL->Length+1)
{
printf("插入位置非法\n");
return -3;
}
//后移
for(j=PL->Length-1;j>=i-1;j--)
{
PL->data[j+1]=PL->data[j];
}
//赋值
PL->data[i-1]=x;
// 更新长度
PL->Length++;
return 0;
}
void Print_SeqList(PSeqList PL)//打印插入完的列表
{
int i;
for(i=1;i<=PL->Length;i++)
{
printf("%d\t",PL->data[i-1]);
}
printf("\n");
}