链表发生读取访问权限冲突
刚开始学链表,写了一个非递减单链表。但是出错了,po个出错图吧

我觉得好像是头结点的问题,下面po我写的程序吧
在下先向大神谢过,请赐教

我觉得好像是头结点的问题,下面po我写的程序吧
#include<iostream>
using namespace std;
struct List
//构建构建新节点的结构体
//非递减顺序排列
{
int data;
List * next;
};
void insert(List * & headnode, int num)
{
List *s, *p = headnode, *q; //*s用于建立新节点 *p用于跟踪最新结点
//以下三行为构建新结点
s = new List;
s->data = num;
s->next = NULL;
//以下if语句用于插入第一个结点
if (p->next == NULL)
{
headnode->next = s;
p = s;
return;
}
//新节点数据最小时的操作
if (headnode->next->data > s->data)
{
s->next = headnode->next;
headnode->next = s;
return;
}
//常规对比插入排序
for (q = headnode->next, p = headnode->next->next; p; q = p, p = p->next)
{
if (p->data >= s->data)
{
s->next = p;
q->next = s;
return;
}
}
q->next = s;
return;
}
void ShowList(const List * headnode)
{
cout << "您所输入的数为:";
while (headnode)
{
cout << headnode->data << '\t';
headnode = headnode->next;
}
cout << endl;
}
int main()
{
int k = 0, m = 0; //k用于输入新数据 m用于计算节点数
List * headnode = NULL;
cout << "请输入除零以外的任何数" << endl;
cin >> k;
while (k != 0)
{
insert(headnode, k);
cin >> k;
m++;
headnode->data = m;
}
ShowList(headnode); //输出链表
}在下先向大神谢过,请赐教
...全文
相关推荐
C++访问权限冲突解析[项目源码]
在C++编程语言的开发过程中,经常会出现读取访问权限冲突的异常情况。这种情况主要有两个类型:一种是数组访问越界,另一种是空指针异常。
2020年10月期间亲身经历后的面试题总结
- **乐观锁与悲观锁**:乐观锁假设很少发生并发冲突,读取时不加锁,写入时验证;悲观锁假设会发生冲突,读取和写入都加锁。
华为校园招聘笔试题
**信号量(Semaphores)**:用于解决多个进程间的互斥问题,避免并发访问同一资源时发生冲突。### 二叉树遍历二叉树的三种基本遍历方式分别是前序遍历、中序遍历和后序遍历:1.
Java面向对象程序设计(第二版)
封装可以通过访问修饰符来实现,比如public、protected和private,它们控制类成员的可见性和访问权限。2.
操作系统文件管理
**并发控制**:当多个用户同时访问同一文件时,通过加锁等机制避免数据冲突。2. **事务管理**:确保文件操作的一致性和完整性,即使在发生故障时也能保持数据的正确状态。


新手乐园
