C++数据结构链表基本操作示例过程

 更新时间:2021年11月18日 16:25:22   作者:xr415  
这篇文章主要为大家介绍了C++数据结构链表基本操作的示例过程有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪

首先创建好一个节点

typedef struct node {
	int date;
	struct node* next;
}*PNODE;
 PNODE creatnode(int date )
{
	PNODE newnode = (PNODE)malloc(sizeof(struct node));
	assert(newnode);
	newnode->next = NULL;
	newnode->date = date;
	return newnode; 
}

其次创建一个统计节点属性

struct List {
	struct node* pronode;//这只是一个类型
	struct node*tailnode;
	int size;
};
//创建统一链表属性的list  
//用来统计链表的(size)节点数
//head和tail用来统计链表的表头和表尾
struct List* creatlist()
{
	struct List* list = (struct List*)malloc(sizeof(struct List));
	assert(list);
	list->pronode = NULL;
	list->tailnode = NULL;
	list->size = 0;//初始化
	return  list;
 
}

增加节点

用表头插入的方法插入节点

​void insertbyhead(struct List* list,int date)
{
	PNODE newnode = creatnode(date);
	if (list->size == 0)
	{
		list->pronode = list->tailnode = newnode;
	}
	else
	{
		newnode->next = list->pronode;
		list->pronode = newnode;
	}
	list->size++;
}
 
​

删除节点

//表头删除
void deletehead(struct List* list)
{
	PNODE next = list->pronode->next;
	free(list->pronode);
	list->pronode = next;
}
//表尾删除
void deletetail(struct List* list)
{
	PNODE pmove = list->pronode;//定义一个移动指针
                                //目的找到表尾指针
	if (list->size == 0)
	{
		printf("无法删除");
		return;
	}
	while (pmove->next != list->tailnode)
	{
		pmove = pmove->next;
	}
	pmove->next = NULL;//表尾指针前面一个下一个指向null
	free(list->tailnode);
	list->tailnode = pmove;
 
}

以上就是C++数据结构链表基本操作示例过程的详细内容,更多关于C++数据结构链表基本操作的资料请关注脚本之家其它相关文章!

相关文章

  • 基于C语言实现2048游戏

    基于C语言实现2048游戏

    这篇文章主要为大家详细介绍了基于C语言实现2048游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 浅谈C语言中的强符号、弱符号、强引用和弱引用

    浅谈C语言中的强符号、弱符号、强引用和弱引用

    这篇文章主要介绍了C语言中的强符号、弱符号、强引用和弱引用的定义及相关内容,非常的简单易懂,有需要的朋友可以参考下
    2014-10-10
  • 深入浅析OpenCV copyTo()函数

    深入浅析OpenCV copyTo()函数

    在Mat矩阵类的成员函数中copyTo(roi , mask)函数是非常有用的一个函数,尤其是后面的mask可以实现蒙版的功能,下面通过本文给大家介绍下OpenCV copyTo()函数的相关知识,感兴趣的朋友一起看看吧
    2022-01-01
  • 在VC中隐藏控制台程序窗口的实现代码

    在VC中隐藏控制台程序窗口的实现代码

    大家都知道,当编写一个win32 console application时,当运行此类程序的时候默认情况下会有一个类似dos窗口的console窗口,但是有的时候我们只想在程序中运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出
    2013-04-04
  • AVX2指令集优化浮点数组求和算法

    AVX2指令集优化浮点数组求和算法

    这篇文章主要为大家介绍了AVX2指令集优化浮点数组求和算法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • C语言修炼之路一朝函数思习得 模块思维世间生下篇

    C语言修炼之路一朝函数思习得 模块思维世间生下篇

    函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数
    2022-03-03
  • C语言入门篇--局部全局变量的作用域及生命周期

    C语言入门篇--局部全局变量的作用域及生命周期

    本篇文章是c语言基础篇,本文对初识c语言的变量、局部全局变量的作用域及生命周期做了简要的概述,希望可以帮助大家快速入门c语言的世界,更好的理解c语言
    2021-08-08
  • 千万不要被阶乘吓倒

    千万不要被阶乘吓倒

    本篇文章是对阶乘进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 详解C语言中strcpy函数与memcpy函数的区别与实现

    详解C语言中strcpy函数与memcpy函数的区别与实现

    这篇文章主要介绍了C语言中字符串拷贝函数(strcpy)与内存拷贝函数(memcpy)的不同及内存拷贝函数的模拟实现,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12
  • C++实现图的邻接表存储和广度优先遍历实例分析

    C++实现图的邻接表存储和广度优先遍历实例分析

    这篇文章主要介绍了C++实现图的邻接表存储和广度优先遍历,实例分析了C++实现图的存储与遍历技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论