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

单链表的简单运用

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

单链表的简单运用

单链表
  • 单链表的简单操作
  • 代码结构
    • 一、单链表数据结构
    • 二、创建节点
    • 三、删除节点
    • 四、插入节点
    • 五、打印节点
    • 六、main函数
    • 七、运行结果
  • 总结

单链表的简单操作

代码结构 一、单链表数据结构
typedef struct tag_SingleNodelink SingleNodelink;

struct tag_SingleNodelink
{
	int data;
	SingleNodelink* next;
};
二、创建节点
SingleNodelink *CreateNode(int data)
{
	size_t node_size = sizeof(SingleNodelink);
	SingleNodelink *new = NULL;

	if(NULL == (new = malloc(sizeof(node_size))))
	{
		return NULL;
	}

	memset(new, '', sizeof(node_size));

	new->data = data;
	new->next = NULL;

	return new;
}
三、删除节点
int DeleteNode(SingleNodelink *head, SingleNodelink *node)
{
	SingleNodelink *temp = NULL;

	if(NULL == head || NULL == node)
	{
		printf("%s-%d:33[31m Delete error 33[0mn", __FILE__, __LINE__);
		return -1;
	}

	if(node == head)
	{
		free(node);
		head = head->next;
		node = NULL;
		return 0;
	}

	temp = head;
	while(temp->next)
	{
		if(temp->next == node)
		{
			temp->next = node->next;
			node->next = NULL;
			free(node);
			node = NULL;
			return 0;
		}

		temp = temp->next;
	}

	return -1;

}
四、插入节点
int InsertNode(SingleNodelink **head, SingleNodelink *new)
{
	if(NULL == new)
	{
		printf("%s-%d:33[31m Insert error 33[0mn", __FILE__, __LINE__);	
		return -1;
	}

	if(NULL == head)
	{
		*head = new;
	}
	else
	{
		new->next = *head;
		*head = new;
	}

	printf("%s-%d:33[31m Insert successfully 33[0mn", __FILE__, __LINE__);

	return 0;

}
五、打印节点
int Travellink(SingleNodelink *head)
{
	SingleNodelink *temp = NULL;

	if(NULL == head)
	{
		printf("%s-%d:33[31m link is NULL 33[0mn", __FILE__, __LINE__);
		return -1;	
	}

	temp = head;

	while(NULL != temp)
	{
		printf("%s-%d:33[31m %d 33[0mn", __FILE__, __LINE__, temp->data);
		temp = temp->next;
	}

	printf("n-----------------------------nn");

	return 0;
}
六、main函数
int main(int argc, char const *argv[])
{

	int i = 0;
	SingleNodelink *new = NULL;
	SingleNodelink *head = NULL;

	for(i = 0; i < 10; i++)
	{
		new = CreateNode(i);	
		InsertNode(&head, new);
	}

	Travellink(head);


	SingleNodelink *node = head->next;

	DeleteNode(head, node);

	Travellink(head);

	new = CreateNode(8);	
	InsertNode(&head, new);
	Travellink(head);

	return 0;
}
七、运行结果


总结

单链表比较简单,具体的使用还是数据结构中的指针运用。

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

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

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