链表综合算法设计

来源:百度知道 编辑:UC知道 时间:2024/09/20 19:35:54
、链表综合算法设计:
数据结构是:职工号(no)、姓名(name)、部门号(depno)、工资数(salary)、职工号指针(pno)、部门号指针(pdepno)和工资数指针(psalary)。设计一个程序,(用单链表实现),完成如下功能:
1) 输入:添加一个职工记录;
2) 输出:按部门号指针输出全部职工记录;
3) 按no将职工记录从小到大排序;
4) 按no链将职工记录全部输出;
5) 删除全部职工的记录;

//文件名:excise1.cpp
# include<stdio.h>
# include<malloc.h>
typedef struct
{ int no; //职工编号
char name[10]; //姓名
int depno; //部门号
float salary; //工资
}EmpType; //职工类型

typedef struct node
{ EmpType data; //存放职工信息
struct node *next; //指向下一个节点的指针
}EmpList; //职工单链表节点类型
void DelAll(EmpList * &L) //清除职工文件中的全部记录
{ FILE *fp;
EmpList *p,*q;
if ((fp=fopen("emp.dat","wb"))==NULL) //重写清空emp.dat文件
{ printf(" 提示:不能打开职工文件\n");
return;
}
fclose(fp);
p=L->next;
if (p!=NULL)
{ q=p->next;
while(q!=NULL)
{ free(p);
p=q;
q=q->next;
}
free(p);
L->next=NULL;

}
else
printf("提示:不存在任