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

C语言加强--链表(韦东山)

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

C语言加强--链表(韦东山)

链表 1链表基础
typedef struct spy {
	char *name;
	struct spy *next;
}spy, *p_spy;

spy A = {"A", NULL};
spy B = {"B", NULL};
spy C = {"C", NULL};


int main( void )
{
	p_spy head = NULL;
	
	A.next = &B;
	B.next = &C;
	C.next = NULL;
	
	prvSetupHardware();

	head = &A;
	
	while (head)
	{
		printf("%srn", head->name);
		head = head->next;
	}

	while (1);
	
	return 0;
}

2 插入
void insert_spy(p_spy newspy)
{
	p_spy last;
	
	if (head == NULL)
	{
		head = newspy;
		newspy->next = NULL;
	}
	else
	{
		
		last = head;
		while (last)
		{
			if (last->next == NULL) 
				break;
			else
				last = last->next;
		}
		
		
		last->next = newspy;
		newspy->next = NULL;
	}
}

int main( void )
{

	insert_spy(&A);	
	insert_spy(&B);	
	insert_spy(&C);	
	insert_spy(&D);	
	
	prvSetupHardware();

	head = &A;
	
	while (head)
	{
		printf("%srn", head->name);
		head = head->next;
	}

	while (1);
	
	return 0;
}

3 删除
void remove_spy(p_spy oldspy)
{
	p_spy left;
	
	if (head == oldspy)
	{
		head = oldspy->next;
	}
	else
	{
		
		left = head;
		while (left)
		{
			if (left->next == oldspy)
				break;
			else
				left = left->next;
		}
		
		if (left)
		{
			left->next = oldspy->next;
		}
	}
}

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

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

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