温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++数据结构中链表有哪些操作

发布时间:2021-11-18 13:06:38 来源:亿速云 阅读:191 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“C++数据结构中链表有哪些操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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++数据结构中链表有哪些操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    c++
    AI