因为刚学线性表,对线性表的操作不是太了解,也不知道怎么对建立的线性表进行插入和删除处理,如果解答,一定会积极采纳,谢谢!
已经建立的线性表程序如下,对其进行插入和删除处理
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LIST_INIT_SIZE 100
typedef struct stu{
char xuehao[14];
char name[20];
int sex;
char tel[14];
char qq[12];
}ElemType;
typedef struct{
ElemType *elem;//表的空间基址
int length;//表的长度
int Listsize;//表的长度上限
}SqList;
void InitSeqList(SqList &L)//线性表的创建
{
char flag;
int i,n;
ElemType p;
L.elem=(ElemType)malloc (LIST_INIT_SIZE*sizeof(ElemType));//动态分配空间
L.length=0;
L.Listsize=LIST_INIT_SIZE;
printf("是否输入初始数据?(Y/N)");
scanf("%c",&flag);
getchar(); //修改 吸收缓冲区多余字符
if(flag=='N' ||flag=='n')
return ;
printf("请输入初始化数据的个数:");
scanf("%d",&n);
getchar(); //修改 吸收缓冲区多余字符
if(n>L.Listsize)
{
printf("数据太多,不足以存储!");
return ;
}
p=L.elem;
L.length=n;
for(i=0;i<n;i++)
{
printf("请输入第%d个数据(学号 姓名 性别(0或1) 联系电话 qq号):\n",i+1);
scanf("%s%s%d%s%s",p->xuehao,p->name,&p->sex,p->tel,p->qq);
p++;
}
return;
}
void PrintSeqList(SqList &L)
{
int i;
printf("学号 姓名 性别 联系电话 QQ号\n");
for(i=0;i<L.length;i++)
{
printf("%-14s%-14s",L.elem[i].xuehao,L.elem[i].name);
if(L.elem[i].sex) printf(" 男 ");
else printf(" 女 ");
printf("%-14s%-10s\n",L.elem[i].tel,L.elem[i].qq);
}
}
int main()
{
SqList L;
InitSeqList(L);
PrintSeqList(L);
return 0;
}