#define OVERFLOW -1
#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10
typedef struct Stu { char name[20];//姓名 char stuno[10];//学号 int age;//年龄 int score1;//语文成绩 int score2;//数学成绩 int score3;//英语成绩 }ElemType;
typedef struct LIST { ElemType *elem; int length;//顺序表长度 int listsize;//链表最大值 }List;
int init(List *L)//构造一个空的线性表L { L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem)exit(OVERFLOW); L->length=0; L->listsize=LIST_INIT_SIZE; return OK; }
int ListLength(List *L) { return L->length; }
int Insert_SqList(List *La,int i,ElemType x) { ElemType *p,*q,*newbase; if(i<1||i>La->length+1)return ERROR;
if(La->length>=La->listsize) { newbase=(ElemType*)realloc(La->elem,(La->listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase)exit(OVERFLOW); La->elem=newbase; La->listsize+=LISTINCREMENT; } q=&(La->elem[i-1]); for(p=&(La->elem[La->length-1]);p>=q;--p) *(p+1)=*p; *q=x; ++La->length; return OK; }
void printList(List *L) { int i; for(i=0;i int Delete_SqList(List *La,int i,ElemType *x) { ElemType *p,*q; if(i<1||i>La->length)return ERROR; p=&(La->elem[i-1]); x=p; q=La->elem+La->length-1; for(++p;p<=q;++p) *(p-1)=*p; --La->length; return OK; } void main() { int i,w,n; int j=1; List list; ElemType stuck; init(&list); printf(\"请输入要建立学生信息的长度:\\n\scanf(\"%d\for(i=1;i<=n;i++) { printf(\"请输入第%d个学生的信息\\n\ printf(\"输入第%d个学生的姓名:\\n\scanf(\"%s\ printf(请输入第%d个学生的学号:\\n\scanf(\"%s\ printf(\"请输入第%d个学生的年龄:\\n\scanf(\"%d\ printf(\"请输入第%d个学生的语文成绩:\\n\scanf(\"%d\ printf(\"请输入第%d个学生的数学成绩:\\n\scanf(\"%d\ printf(\"请输入第%d个学生的英语成绩:\\n\scanf(\"%d\ list.length++; }printList(&list); 因篇幅问题不能全部显示,请点此查看更多更全内容