这篇文章主要为大家展示了“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;//表尾指针前面一个下一个指向nullfree(list->tailnode);list->tailnode = pmove; }
以上是“C++数据结构中链表有哪些操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!