学到链表了,现在要做一个头尾相连的链表 里面有13个结构体 程序如下 运行后语法没有错误请同学们帮忙改错

[复制链接]
查看11 | 回复5 | 2012-7-25 12:48:53 | 显示全部楼层 |阅读模式
struct play *fun(){ struct play *p=NULL,*s;int i=0;p=(struct play *)malloc(sizeof(struct play)); //这里把s改成p,s=p;//这里改成把p的地址赋值给s,这样s就指向链表的第一个元素while(i!=13)//由于前面已经申请了一个,所以最终整个链表的长度是14{ p->next=(struct play *)malloc(sizeof(struct play)); //新申请一个元素,赋给p->next,这样新申请的元素才能与上一个元素连在一起p=p->next;//这句话不用变,后面的都对了i=i+...
回复

使用道具 举报

千问 | 2012-7-25 12:48:53 | 显示全部楼层
/*输入数据[1/8] : 36输入数据[2/8] : 25输入数据[3/8] : 14输入数据[4/8] : 74输入数据[5/8] : 85输入数据[6/8] : 96输入数据[7/8] : 65输入数据[8/8] : 4536 25 14 74 85 96 65 45输入数据[1/5] : 10输入数据[2/...
回复

使用道具 举报

千问 | 2012-7-25 12:48:53 | 显示全部楼层
p=(struct play *)malloc(sizeof(struct play));p=p->next;这个链接的有问题,因为你的p指针以及申请了一个空间,然后又直接把p指向p的下一个节点的地址,可以用以下这个方法解决:struct play *fun(){ struct play *p=NULL,*s, *q = NULL;int i...
回复

使用道具 举报

千问 | 2012-7-25 12:48:53 | 显示全部楼层
pnext = pbefore->next;pnext = A_NEW_NODE;这样顺序是不对的:因为这样pnext指向了那个空间,但pbefore->next并没有指向,链表没连上。...
回复

使用道具 举报

千问 | 2012-7-25 12:48:53 | 显示全部楼层
#include#includestruct play{
int num;
struct play *next;};struct play *fun(){
struct play *p=NULL,*s;
int i=0;
p=s=(struct ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行