循环链表的学习以及问题汇总

@[TOC](循环链表常见的问题)

 

# 问题一:

**报错**

![报错内容](https://img-blog.csdnimg.cn/direct/57a4dcc6993a495c8db9c3dbfade4a78.png)

**报错原因:**因为没有提前对_tag_CircleListNode重命名为CircleListNode,所以,在定义的时候,必须在结构体内 使用struct _tag_CircleListNode 来定义想要定义的该类型的结构体的指针next

 

![错误截图](https://img-blog.csdnimg.cn/direct/2354fe91cf1944a0a629276207469057.png)

**修改方案**

**在定义同类型的变量之前进行声明**

![修改1](https://img-blog.csdnimg.cn/direct/eb5f2fe5374746279a10c41ef153c37c.png)

在typedef struct结构体中创建同结构体类型的变量指针的时候,使用struct _tag_CircleListNode

 

```cpp

typedef struct _tag_CircleListNode

{

 struct _tag_CircleListNode *next;

}CircleListNode;

```

 

 

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

 

# 问题二:

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8328fcfd0ead4c10bb20be2358973161.png)

**需要注意的是:此时应该是head->next指向空nullptr,而非head = nullptr**

# 问题三:请专家指点一下我这个循环链表的插入这么写正确么

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/60e7e99e33ee4baa925341622608ef1c.png)

# 问题四:这么写可以吗?

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ae7b9cd9c779436c8c73f779eb65c0cf.png)

你可能感兴趣的:(c++,数据结构)