用数组来实现链表的插入查找删除功能

本文通过数组实现链表的功能,模拟100名员工在10家公司中的入职、查询和离职操作。利用数组的下标作为链接,头节点存储在数组的特定位置,插入时更新链表头。
摘要由CSDN通过智能技术生成

假设有100名员工,他们分别在10家公司中,现在要模拟他们的入职(插入)、信息查询(查找)、离职(删除)等管理操作行为,用数组来代替链表实现,具体代码如下:

#include "stdafx.h"
#include <stdlib.h>
#define  EMPLOYEE_NUM   100
#define  COMPANY_NUM     10



typedef struct Employee
{
	int id;    //身份证ID
	char name[20];
}Employee;

typedef struct Company
{
	Employee   employee;
	 int       next;
}Company;

int head[COMPANY_NUM] = {0};           //公司的头指针
int use = 1;                             //当前使用标记
Company g_company[EMPLOYEE_NUM+1];         //公司链表体
int      g_employee_index[EMPLOYEE_NUM]; //对应所在的公司


void insert(int companyIndex, Employee employee)
{
	g_company[use].employee = employee;
	g_company[use].next = head[companyIndex];
	head[companyIndex] = use++;
}

void del(int companyIndex, int id)
{
	int pre = 0;
	for (int i = head[companyIndex]; i != 0; i = g_company[i].next)
	{
		if (g_company[i].employee.id == id)
		{
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值