标题:[求助]烦恼的链表
只看楼主
hsong1986
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-13
 问题点数:0 回复次数:2 
[求助]烦恼的链表

#include "stdio.h"
struct link
{
int item;
struct link *next;
};

struct link *create(int b[][7],int i)
{
struct link *head,*p1,*p2,*p3;
int j;
head=(struct link*)malloc(sizeof(struct link));
head->item=b[i][0];
head->next=NULL;
for(j=1;j<7;j++)
if(b[i][j]!=0)
{
p1=head;
while(p1!=NULL){p3=p1;p1=p1->next;}
p2=(struct link*)malloc(sizeof(struct link));
p2->item=b[i][j];
p2->next=NULL;
p3->next=p2;
}
else break;
return head;
}
main()
{
struct link d[10];
int a[10][7]={{0},{1,2,5,0},{2,4,0},{2,3,0},{1,2,4,0},{1,3,0},{2,3,0},{1,3,0},{1,2,3,5,6},{1,2,3}};
int i,j,n,B[7],b[10][7];
......
谁能解释一下*p1,*p2,*p3的作用???

[此贴子已经被作者于2006-6-21 16:24:33编辑过]

搜索更多相关主题的帖子: next 烦恼 include create 
2006-06-21 16:24
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
用队列

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-06-21 16:26
fzjz08
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-8-29
得分:0 


我认为该这样才对:


struct link *create(int b[][7],int i)
{
struct link *head,*p1,*p2,*p3;
int j;
head=(struct link*)malloc(sizeof(struct link));
head->item=b[i][0];
head->next=NULL;
p1=head; //加上这一句
for(j=1;j<7;j++)
if(b[i][j]!=0)
{
p1=head;
while(p1!=NULL){p3=p1;p1=p1->next;}
//
这一段语句去掉
p2=(struct link*)malloc(sizeof(struct link));
p2->item=b[i][j];
p2->next=NULL;
p3->next=p2; //去掉
p1=p2;
}
else break;
return head;
}



这样的话,p1代表链表尾的地址
p2代表新插入的字段的地址

如果有问题请指教哈


2006-06-22 00:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-73880-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083841 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved