#include "linklist.h"
Status CreateList(LinkList &L)
{ //用尾插法建立带表头结点的通信录单链表L,输入记录按num有序
//system("cls");
int flag=1;
LNode *p,*rear;
L = (LinkList)malloc(sizeof(LNode));
if (!L) return ERROR;
L->next = NULL;
rear=L; //尾指针初始指向头结点
while (flag==1)
{
p=(LinkList)malloc(sizeof(LNode)); //申请新结点
printf("编号(4)姓名(8) 性别 电话(11) 地址(30)\n");
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);
rear->next =p;
rear=p;
printf("继续输入吗?(1/0)");
scanf("%d",&flag);
}
rear->next =NULL;
return OK;
}
void Insert(LinkList &L,ElemType e)
{ //人员记录的插入,使记录按num有序
LNode *p1,*p2,*p;
p1=L;
p2=p1->next ;
while (p2!=NULL && strcmp(p2->data.num,e.num)<0)
{
p1=p2;p2=p2->next;
}
p=(LinkList)malloc(sizeof(LNode)); //申请新结点
strcpy(p->data.num,e.num);
strcpy(p->data.name,e.name);
strcpy(p->data.sex,e.sex);
strcpy(p->data.phone,e.phone);
strcpy(p->data.addr,e.addr);
p1->next =p;
p->next =p2;
}
LNode * Find(LinkList L)
{ //通信录查询
LNode *p;
char num[5];
char name[10];
int select;
//system("cls");
printf("===============\n");
printf("1. 按编号查询 \n");
printf("2. 按姓名查询 \n");
printf("===============\n");
printf("请选择:\n");
p=L->next ;
scanf("%d",&select);
if (select==1)
{
printf("请输入要查找的编号:");
scanf("%s",num);
while (p && strcmp(p->data.num,num)<0)
p=p->next;
if (p==NULL || strcmp(p->data.num,num)>0)
{
p=NULL;
}
}
else
if (select==2)
{
printf("请输入要查找的姓名:");
scanf("%s",name);
while (p && strcmp(p->data.name,name)!=0)
p=p->next;
}
return p;
}
void Delete(LinkList &L)
{ //人员记录的删除
LNode *p,*q;
p=Find(L);
if (p==NULL)
{
printf("未查到要删除的记录!\n");
return;
}
q=L;
while (q!=NULL && q->next !=p)
q=q->next;
q->next =p->next ;
free(p);
printf("记录已被删除!\n");
}
void PrintList(LinkList L)
{ //遍历表,输出每个表元素值
LNode *p=L->next ;
system("cls");
printf("编号 姓 名 性别 电 话 地 址\n");
printf("-----------------------------------------------------\n");
while (p!=NULL)
{
printf("%s%s%s%s%s\n",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);
printf("-----------------------------------------------------\n");
p=p->next ;
}
}
jstxsy107
- 粉丝: 1
- 资源: 1
最新资源
- BetterWMF5.0
- CAXACAD清理工具
- 机械设计极柱焊接sw22可编辑全套技术资料100%好用.zip
- DOCXReadWrite for D11.2 D12 测试可用
- CAD图纸合并插件,喜欢的可以参考
- E000611机械零件配件类网站模板.zip+PHP+Mysql+易优CMS建站模板
- 堆排序算法解析-基于二叉堆的选择排序及应用
- MATLAB车牌识别完整源代码有神经网络和模板识别(源码+报告)
- 机械设计立式输送机sw18可编辑全套技术资料100%好用.zip
- win32汇编环境,在窗口程序中画三角形
- C语言实现的简单停车场管理系统及其基本功能应用
- 机械设计龙门式行车sw19可编辑全套技术资料100%好用.zip
- 光伏并网逆变器,单相光伏并网逆变器,最大功率跟踪,MPPT,光伏建模,并网逆变器,电导增量法,扰动观察法,最大功率跟踪控制,逆变器双闭环控制 提供参考文献
- 基于规则和机器学习的钓鱼邮件筛选系统构建与实施
- 机械设计锂电池在线式自动贴膜机sw18全套技术资料100%好用.zip
- html+css+js网页设计 体育 体育云课堂9个页面
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈