我是靠谱客的博主 曾经玉米,最近开发中收集的这篇文章主要介绍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++数据结构链表基本操作示例过程的全部内容,希望文章能够帮你解决C++数据结构链表基本操作示例过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部