weixin_45327229 2020-03-25 21:45 采纳率: 50%
浏览 350

数据结构单链表print打印没有数据输出,为什么?

#include //单链表的创建,插入,删除,打印 为什么没有输出数据呢?
#include
using namespace std;
typedef struct LNode
{
int num;
float score;
struct LNode next;
}LNode/
*Linklist*/;
void CreateList_L(LNode *L,int n) //创建单链表
{
LNode *p;
L=new LNode;
L->next=NULL;
for(int i=n;i>0;i--)
{
p=new LNode;
cout<<"enter num score:"< cin>>p->num>>p->score; //p.num 不对 为什么
p->next=L->next;
L->next=p;
}
}

int LinkInsert_L(LNode *L,int i, int num,float sco) //在单链表L中第i个位置之前插入元素
{
LNode *p;
p=L;
int j=0;
while(p&&j {
p=p->next;
++j;
}
if(!p||j>i-1)return -1;
LNode *s=new LNode; //生成新节点
s->num=num;
s->score=sco;
s->next=p->next;
p->next=s;

}
int ListDelete_L(LNode *L,int i,int num,float sco) //在带头结点的单链表L中,删除第i个元素,并返回其值
{
LNode *p=L;
int j=0;
while(p->next&&j {
p=p->next;
++j;
}
if(!(p->next)||j>i-1)return -1;
LNode *q=new LNode;
q=p->next;
p->next=q->next;
num=q->num;
sco=q->score;
free(q);
}

void print(LNode *L,int n) //输出打印单链表数据
{

LNode *p=L->next; 
cout<<"Now,these "<<n<<" records are:"<<endl;
while(p!=NULL)
{
    cout<<p->num<<" "<<p->score<<endl;
    p=p->next; 
}   

}

int main()
{
void CreateList_L(LNode L,int n);
void print(LNode *L,int n);
const int m=3;
LNode
l;
CreateList_L(l,m);
print(l,m);
return 0;
}

  • 写回答

1条回答 默认 最新

  • weixin_43405544 2020-03-26 10:23
    关注

    createList的第一个参数是一个结构体指针类型,你传的只是一个结构体类型。

    typedef struct LNode
    {
    int num;
    float score;
    struct LNode next;
    }LNode,*Linklist;

    最下面LNode类型是结构体,你可以LNode a;a.num=1;来进行操作。
    Linklist是一个指向结构体的指针,*Linklist和LNode等价,你可以Linklist b;b->num=1;来操作。

    评论

报告相同问题?

悬赏问题

  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机