良许Linux教程网 干货合集 C++数据结构链表基础操作方法

C++数据结构链表基础操作方法

这篇文章主要为大家介绍了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;
 
}

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部