数据结构顺序表电话通讯录Word下载.docx
- 文档编号:18156771
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:7
- 大小:15.91KB
数据结构顺序表电话通讯录Word下载.docx
《数据结构顺序表电话通讯录Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构顺序表电话通讯录Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
{
student*elem;
//存储空间基址
intlength;
//当前长度
intlistsize;
//当前分配的存储空间(以sizeof(student)为单位)
}Sqlist;
SqlistL;
//定义全局变量L为Sqllist类型
StatusListInsert(Sqlist&
L,inti,studente)
//插入学生信息到顺序表L中
intj;
student*newbase;
if(i<
1||i>
L.length+1)returnERROR;
//i值不合法
if(L.length>
=L.listsize)//当前存储空间已满,增加分配
{
newbase=(student*)realloc(L.elem,(LIST_INIT_SIZE+LIST_INCREMENT)*(sizeof(student)));
if(!
newbase)//存储分配失败
exit(OVERFLOW);
L.elem=newbase;
//新基址
L.listsize+=LIST_INCREMENT;
//增加存储容量
}
for(j=L.length;
j>
=i;
j--)
L.elem[j]=L.elem[j-1];
//插入位置及之后元素的右移
L.elem[i-1]=e;
L.length++;
returnOK;
}
voidInitList(Sqlist&
L)
{
//创建顺序表
L.elem=(student*)malloc(LIST_INIT_SIZE*sizeof(student));
L.elem)exit(OVERFLOW);
//存储分配失败
L.length=0;
//空表长度
L.listsize=LIST_INIT_SIZE;
//初始存储容量
voidListTraverse(SqlistL,void(*vi)(student&
))
//显示顺序表中的所有记录
system("
cls"
);
printf("
姓名电话号码\n"
student*p;
inti;
p=L.elem;
for(i=1;
i<
L.length+1;
i++)
vi(*p++);
输入0:
返回菜单请输入您的选择:
"
voidprint(student&
a)
//信息输出
%-10s%-8s"
a.name,a.num);
\n"
intListLength(SqlistL)//返回顺序表的长度
{returnL.length;
intLocateElem(SqlistL,studente,Status(*compare)(student,student))
//返回L中第一个与e满足关系compare的数据的位序,
//若这样的数据不存在,则返回为0;
inti=1;
//i的初值为第1个元素的位序
student*p=L.elem;
//p的初值为第1个元素的存储位置
while(i<
=L.length&
&
!
compare(*p++,e))i++;
if(i<
=L.length)
returni;
else
returnERROR;
StatusListDelete(Sqlist&
L,inti,student&
e)
//在顺序表L中删除第i个元素,并返回OK
system("
//清除屏幕
L.length)//i值不合法
e=L.elem[i-1];
//p为删除元素的位置
for(j=i;
j<
=L.length;
j++)L.elem[j-1]=L.elem[j];
L.length--;
voidwrong()
//错误提示信息输出
youhaveinputedawrongnumber"
pleaseinputthenumberthatisbetween0and8"
voidDelete(Sqlist&
//根据i删除顺序表中的记录
studente;
请输入要删除的位置(1≦i≦%d):
"
L.length+1);
scanf("
%d"
&
j);
ListDelete(L,j,e);
已删除!
输入0:
voidScanIn(Sqlist&
//信息输入
chara[2];
请输入信息:
do
student*p=L.elem;
请输入姓名:
%s"
e.name);
请输入电话号码:
e.num);
请输入你要插入的位置(1≦i≦%d):
i);
ListInsert(L,i,e);
jump:
是否继续输入信息(y/n)"
a);
}while(strcmp(a,"
y"
)==0||strcmp(a,"
Y"
)==0);
studentstu[N]={
{"
小易"
"
},
小二"
小伞"
小斯"
小武"
}};
intstuIntsertList(Sqlist&
//将结构体数组stu中的记录插入到顺序表
inti,j;
for(i=0;
N;
j=ListInsert(L,i+1,stu[i]);
if(j)printf("
已成功加入到顺序表中\n"
voidmenu()
//菜单函数
\t\t*************************************\n"
\t\t*1.导入记录*\n"
\t\t*2.输入记录*\n"
\t\t*3.删除记录*\n"
\t\t*4.显示所有记录*\n"
\t\t*0.返回本菜单*\n"
\t\t*************************************\n\n\n"
//开始函数
voidstart()
\t\t\t**************************\n"
\t\t\t*欢迎使用*\n"
\t\t\t*电话查询系统*\n"
\t\t\t**\n"
menu();
intmain()
inti=0,j;
Sqlistp,q;
InitList(L);
start();
while(scanf("
i))
switch(i)
case1:
stuIntsertList(L);
break;
case2:
ScanIn(L);
break;
case3:
Delete(L);
case4:
ListTraverse(L,print);
case0:
menu();
default:
wrong();
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 顺序 电话 通讯录