栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言单链表

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言单链表

1.arp_link.c

#include 
#include 
#include 
#include 
#include "arp_link.h"

ARP_link *arp_head=NULL;

void free_arp_link(ARP_link *head){
	ARP_link *pb = head;
	while(head){
		pb = head->next;
		free(head);
		head = pb;
	}
}


void printf_arp_link(ARP_link *head){
	ARP_link *pb = head;
	while(pb){
		printf("IP:%d.%d.%d.%d---", pb->ip[0],pb->ip[1],pb->ip[2],pb->ip[3]);
		printf("MAC:%02x:%02x:%02x:%02x:%02x:%02xn",
				pb->mac[0],pb->mac[1],pb->mac[2],pb->mac[3],pb->mac[4],pb->mac[5]);
		pb = pb->next;
	}
}


ARP_link *find_arp_from_ip(ARP_link *head, unsigned char *ip){
	ARP_link *pb = head;
	//printf("查找的ip包**********************:%dn",ntohs(*(unsigned short *)ip));//ntohs(*(unsigned short *)
	while(pb){
		if(memcmp(pb->ip,ip,4)==0){
			//printf("查到ip包**********************:%dn",ntohs(*(unsigned short *)(pb->ip)));
			break;
		}
		//printf("查不到n");
		pb = pb->next;
	}
	return pb;
}


ARP_link *inner_arp_link(ARP_link *head,ARP_link* p){
	ARP_link *pb = find_arp_from_ip(head, p->ip);//查找是否有该记录
	if(pb==NULL){//未查找到,插入链表,直接插入表头方便
		p->next = head;
		head = p;
		//printf("插入链表成功n");
	}else{//查找到,修改链表
		memcpy(pb->mac,p->mac,6);//拷贝mac地址
	}
	return head;
}

2.arp_link.h

#ifndef ARP_link_H
#define ARP_link_H

typedef struct arp_link{
	unsigned char ip[4];//ip地址四个字节
	unsigned char mac[6];//mac地址六个字节
	struct arp_link *next;
}ARP_link;

extern ARP_link *arp_head;

extern ARP_link *inner_arp_link(ARP_link *arp_head,ARP_link* p);


extern void printf_arp_link(ARP_link *arp_head);


extern ARP_link *find_arp_from_ip(ARP_link *arp_head, unsigned char *ip);

extern void free_arp_link(ARP_link *arp_head);
#endif

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号