链表发生读取访问权限冲突

ramshadom ramshadom 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚开始学链表,写了一个非递减单链表。但是出错了,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); //输出链表
}


在下先向大神谢过,请赐教
...全文
评论 8
收藏 已收藏
分享
返回顶部
ramshadom
新手乐园 33,315 成员 41,769 内容