链表读取访问权限冲突

问题描述

链表读取访问权限冲突

刚开始学链表,写了一个非递减单链表,先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);  //输出链表
}

然后再po出错的截图~

# 先在此谢过大神了!~

解决方案

insert函数里有点问题,帮楼主改掉了,现在应该没错了,链表既然是没有头结点的,就没有必要从->next开始

 #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 == NULL)
    {
        headnode = s;
        //p = s;
        return;
    }

    //新节点数据最小时的操作
    if (headnode->data > s->data)
    {
        s->next = headnode;
        headnode = s;
        return;
    }

    //常规对比插入排序
    for (q = headnode, p = headnode->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);  //输出链表
}

解决方案二:

List * headnode = NULL;
然后
insert(headnode, k);
此时headnode是null

*p = headnode
if (p->next == NULL)
显然p是null怎么访问next

时间: 2024-10-21 17:08:31

链表读取访问权限冲突的相关文章

第6章 访问权限控制

引言:访问权限(或隐藏具体实现)与"最初的实现并不恰当"有关. 先了解两个概念: 封装(encapsulation),即隐藏对象的属性和实现细节,仅对外公开接口. 重构(Refactoring),就是通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 程序员分为两类,类库的消费者和类库的开发者,类库的消费者希望类库出现新版本的时候,他们并不需要改写他们的代码,而类库的开发者则必须有权限对类库进行修改和改进,而不影响客户端程序员. 这就要求

java的访问权限控制

访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关 访问控制符的等级,从最大权限到最小权限依次为:public.protected.包访问权限(没有关键词).private 1.包:库单元 package 包内包含有一组类,它们在单一的名字空间之下被组织在了一起. import关键字:如果要导入单一的类 import java.util.ArrayList 想要导入其下所有的类 import java.util.* 包机制:为了解决名字空间.名字冲突 当编写一个Java源代码文件时

电脑无网络访问权限怎么办

  电脑无网络访问权限的解决方法一 设定固定IP.右下角电脑图标,右键选择网络和共享中心;点击本地连接弹出本地连接状态,然后选择属性. 在本地连接属性中,双击interne协议版本4设置固定IP,在填写IP界面选择使用下面的IP地址. IP设置:如果您的网关是192.168.1.1的话,那么IP可以设置为192.168.1.2 到192.168.1.255 之间,只要不跟通网络中的其他电脑冲突即可.备注:具体的网关可以参考通网络已连接上的计算机IP,或者咨询负责网络的工作人员.DNS服务地址可以

电脑连接无线网显示有限的访问权限怎么办

电脑连接无线网显示有限的访问权限怎么办          右键点击系统页面的开始,在列表中找到设备管理器,打开. 在列表里,找到网络适配器,然后打开,在下拉中找到Wireless LAN 802.11n 网络适配器. 可以右键点击Wireless LAN 802.11n网络适配器,然后选择属性并点击高级,然后选择EnableAdaptivity,并将其改为Auto 点击确认即可. 如果实在不能解决,那么久重新装一下网卡吧. 电脑连接无线网显示有限的访问权限的解决方法一 我们也可以点击开始打开控制

局域网内共享文件提示没有访问权限

现在公司和单位都组建了局域网.大多使用Windows XP系统,但是这个系统本身就带有些系统排斥,因为内网的资源是共享的,所以经常碰到等入不了的问题,系统提示:你可能没有权限访问网络资源.请与这台服务器的管理员联系以查明你是否有访问权限.拒绝访问."此工作组的服务器列表无法使用.下面就着手解决希望对您有所帮助. 首先,我们先来看下网络邻居互相访问的最基本的条件: 1.双方计算机打开,且设置了网络共享资源; 2.双方的计算机添加了 "Microsoft 网络文件和打印共享" 服

win7笔记本连接无线网提示有限的访问权限怎么办

  win7笔记本连接无线网提示有限的访问权限怎么办 使用无线网卡是当今最快最方便的上网方式,只要有无线就可以连接进行上网,但是有Win7用户在使用笔记本连接无线网络上网的时候,开始很顺利,操作也很正常,过一会就会出现提示"有限的访问权限",这是什么原因呢?明明可以连接上网,怎么还会出现这种情况呢?接下来,小编就来告诉大家具体的原因及解决方法. 原因分析: "访问权限受限"除了路由器连接互联网有问题外(如果网线连接可以的话,可排除),最主要的问题是DHCP分配IP地

Android访问权限大全

原文:http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 andro

只需一步:创建oss bucket并控制访问权限

本文介绍怎样利用阿里云资源编排服务(ROS),一步创建阿里云资源(以OSS为例).创建多个子帐号,并付给子帐号不同的资源访问权限. 先试为快,一步创建 >> 资源编排的RAM功能介绍 阿里云资源访问控制服务(RAM),帮助您把不同的资源权限分配给特定的用户(比如员工.系统或应用程序),达到最小特权的安全实践.例如,授权某个子用户管理两台指定的ECS实例. 资源编排服务按照三种粒度进行访问控制: ALIYUN::RAM::User 给当前账号创建子账号,同时给子帐号指定授权策略 ALIYUN::

Android安全模式惊现致命漏洞 获取最高访问权限

据国外媒体报道,企业安全公司Bluebox在谷歌Android安全模式中发现一个 新的安全漏洞,会令几乎所 有的Android设备成为不设防的受攻击对象.据Bluebox的安全研究团队称,流氓应用可以通过这个安全漏洞获得Android系统和所有已安装应用的最高访问权限,读取用户设备上的所有数据,搜集所有的密码并建立一个由"常开.常联网和常移动"的间谍设备组成的僵尸网络.      Bluebox的首席技术官杰夫佛利斯塔尔(Jeff Forristal)称,利用Android系统中的这个