链式存储结构越界问题

链式存储结构越界问题

问题描述:

本程序系链队列问题,但编译器一直显示其访问越界,望解答。

 

你的初始化应该传入指针的指针或者指针的引用,因为要改变指针的值。你上面的做法会导致q是按值传递的,你在函数里面分配内存相当于做了无用功,外面的指针已然数据是随机的,没有改变。所以会导致后面的添加函数访问错误。

我看你的代码思路不是非常清晰。

 初始化以后数据扔掉了,应该不带参数,但返回初始化的空链表(带一个尾节点)。

LinkQuNode* IniLinkQuNode()
{
    LinkQuNode q = new LinkQuNode;
    q->front = q->rear = new DataNode;
    
    return q;
}

看到你在问答里面提了一个问题 ,我有对应的课程专栏。希望能帮到你。
本人简介:https://blog.csdn.net/it_xiangqiang/article/details/115873169
C和C++算法完整教程:    https://blog.csdn.net/it_xiangqiang/category_10768339.html

有两个问题(如有帮助,请采纳一下,谢谢):

1.你没有记录初始的链表头和当前的尾结点

2.插入函数中,插入后,q的上一个节点的rear需要指向新节点,新节点的front指向q,新节点的rear指向q节点的rear,q节点原来的rear节点需要指向新插入的节点。