| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 503 人关注过本帖
标题:函数套嵌调用问题
只看楼主 加入收藏
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:2 
函数套嵌调用问题
程序代码:
#include<stdio.h>
#include<malloc.h>
struct linknode
{
    int data;
    struct linknode *next;
};
struct linknode *create()//创建单链表
{
    int d;
    int i=1;
    struct linknode *head,*s,*t;
    head=NULL;
   
    printf("建立一个单链表,data域数据已0结束:\n");
    while(1)
    {
        printf("%d:",i);
        scanf("%d",&d);
        if(d==0) 
             break;

        if(i==1)//建立第一个结点
        {
            head=(struct linknode *)malloc(sizeof(struct linknode));
            head->data=d;
            head->next=NULL;
            t=head;
        }
        else//建立其余结点
        {
            s=(struct linknode *)malloc(sizeof(struct linknode));
            s->data=d;
            s->next=NULL;
            t->next=s;
            t=s;
        }
        i++;
    }
    return head;
}
void disp(struct linknode *head)//输出结点数据
{
    struct linknode *p=head;
    printf("输出一个单链表:\n");
    if(p==NULL)
        printf("");
    while(p!=NULL)
    {
        printf("%d",p->data);
        p=p->next;
    }
    printf("\n");
}
int len(struct linknode *head)//返回单链表的长度
{
    int pcount=0;//结点计数器
    struct linknode *p=head;
    while(p!=NULL)
    {
        p->next;
        pcount++;
    }
    return pcount;
}
struct linknode *JCHB(struct linknode *heada,struct linknode *headb)//交叉合并函数
{
    printf("哈哈,开始调用我了");//刚开始检查是否调用
    struct linknode *ha,*hb,*t,*s,*hc;
    hc=heada;
    ha=heada;
    t=heada;
    hb=headb;
    s=headb;

    /*if(len(ha)!=len(hb))
    {
       
        printf("不合题意,链表长度不同\n");
        return NULL;
    }*/

    while(ha!=NULL)
    {
        t=ha;
        ha=ha->next;
        t->next=hb;
        s=hb;
        hb=hb->next;
        s->next=ha;
    }
    return (hc);
}
void main()
{
    struct linknode *heada,*headb,*headc;
    heada=create();
    disp(heada);//输出链表数据
    headb=create();
    disp(headb);
    headc=JCHB(heada,headb);
    disp(headc);
}
问题描述:
有两个单链表A,和B A={a1,a2,.....an},B={b1,b2,...bn},写一个函数合并A和B,并形成一个链表C,C={a1,b1,a2,b2...an,bn}
前提是:A和B的长度相同
疑问如下:
当我不把交叉合并函数的if判断语句注释掉的时候就没输出,当我注释掉的时候程序能满足要求!不知为何加上if判断语句就不行
请前辈们指点一二,不胜感激
搜索更多相关主题的帖子: next 
2010-09-27 09:41
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:40 
    while(p!=NULL)
    {
       p = p->next;
        pcount++;
    }
2010-09-27 10:57
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
呃!谢谢斑竹!
2010-09-27 14:31
快速回复:函数套嵌调用问题
数据加载中...
 
   



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

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