首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

线性表 输出链表中的最大值跟最小值 ?代码错在哪里

2013-06-25 
线性表 输出链表中的最大值和最小值 ?代码错在哪里# include stdio.h# include malloc.htypedef struc

线性表 输出链表中的最大值和最小值 ?代码错在哪里
# include <stdio.h>
# include <malloc.h>

typedef struct node
{
int data;
struct node *next;
}Node,*pnode;

pnode creatlist()
{   
int i,k,j=0;
pnode Head =(pnode)malloc(sizeof(Node));
Head->next= NULL;
scanf("%d",&i);
while(j<i)
{
pnode pnew = (pnode)malloc(sizeof(Node));
scanf("%d ",&k);
pnew->data=k;
pnew->next=Head->next;
Head->next = pnew;
Head = pnew;
j++;
}
return Head;
}
void traverlist(pnode l)
{
    pnode p1= (pnode)malloc(sizeof(Node));
pnode p2= (pnode)malloc(sizeof(Node));
pnode p3= (pnode)malloc(sizeof(Node));
pnode p4= (pnode)malloc(sizeof(Node));
int t;
p1= l->next;
p2=l->next->next;
while(p2!=NULL)
{
if(p1->data>p2->data)
{
t=p1->data;
p1->data=p2->data;
p2->data=t;
}
p1=p1->next;
p2=p2->next;

}
printf("%d ",p1->next->data);
while(p4!=NULL)
{
if(p3->data<p4->data)
{
int t = p3->data;
p3->data= p4->data;
p4->data= t;
}
p3=p3->next;
p4=p4->next;
}
printf("%d",p3->next->data);
}
void main()
{
pnode  l=creatlist();
traverlist(l);
}








[解决办法]

# include <stdio.h>
# include <malloc.h>

typedef struct node
{
int data;
struct node *next;
}Node,*pnode;

pnode creatlist()
{   
int i,k,j=0;
pnode Head =(pnode)malloc(sizeof(Node));
Head->next= NULL;
printf("Input element number:");
scanf("%d",&i);
while(j < i)
{
printf("Input %dth element:",j);
pnode pnew = (pnode)malloc(sizeof(Node));
scanf("%d",&k);
pnew->data=k;
pnew->next=Head->next;
Head->next = pnew;
//Head = pnew;
j++;
}
return Head;
}

void traverlist(pnode l)
{
pnode p1;//= (pnode)malloc(sizeof(Node));
pnode p2;//= (pnode)malloc(sizeof(Node));
int t;

if(l->next==NULL)
return;

p1 = l->next;
t = p1->data;
while(p1->next != NULL)
{
if( t > p1->next->data )
{
t = p1->next->data;
}
p1=p1->next;
}
printf("Min:%d\n",t);

p2 = l->next;
t = p2->data;
while(p2->next != NULL)
{
if( t < p2->next->data)
{
t = p2->next->data;


}
p2=p2->next;
}
printf("Max:%d\n",t);

}

int main()
{
pnode  l=creatlist();
traverlist(l);
        // TODO should add destory function to free memory
return 0;
}



楼主还得加强下指针啊。
[解决办法]
有错误,把错误贴出来。费点儿劲儿把格式弄好。求教的态度首先应该对了才行
[解决办法]
引用:
# include <stdio.h>
# include <malloc.h>

typedef struct node
{
int data;
struct node *next;
}Node,*pnode;

pnode creatlist()
{   
int i,k,j=0;
pnode Head =(pnode)malloc(sizeof(Node));
Head->next= NULL;
scanf("%d",&i);
while(j<i)
{
pnode pnew = (pnode)malloc(sizeof(Node));
scanf("%d ",&k);
pnew->data=k;
pnew->next=Head->next;
Head->next = pnew;
Head = pnew;
j++;
}
return Head;
}
void traverlist(pnode l)
{
        pnode p1= (pnode)malloc(sizeof(Node));
pnode p2= (pnode)malloc(sizeof(Node));
pnode p3= (pnode)malloc(sizeof(Node));
pnode p4= (pnode)malloc(sizeof(Node));
int t;
p3=p1= l->next;
p4=p2=l->next->next;
while(p2!=NULL)
{
if(p1->data>p2->data)
{
t=p1->data;
p1->data=p2->data;
p2->data=t;
}
p1=p1->next;
p2=p2->next;

}
printf("%d ",p1->next->data);
while(p4!=NULL)
{
if(p3->data<p4->data)

int t = p3->data;
p3->data= p4->data;
p4->data= t;
}
p3=p3->next;
p4=p4->next;
}
printf("%d",p3->next->data);
}
void main()
{
pnode  l=creatlist();
traverlist(l);
}


我的代码没有输出结果,可以问一下我错在哪里吗?我找不出来。拜托。

我其实想说,错的地方太多了,很多是你基础知识都不会,不好改,我才直接上代码,不想说,你看看我的代码和你的比较下,在看看基础知识,慢慢来,慢慢学吧,先学基础吧。

热点排行