| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 409 人关注过本帖
标题:问题请教 不知道程序什么地方错了 拜求大神
只看楼主 加入收藏
新手老羊
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-10-25
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:1 
问题请教 不知道程序什么地方错了 拜求大神
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

typedef struct LONDE
{
  int data;
  struct LONDE *next;
}LinkList;

void initlist(LinkList *L)  
{
 L=(LinkList *)malloc(sizeof(LinkList));
 L->next=NULL;
}


void createlist(LinkList *L,int a[],int n)
{
 LinkList *s,*r;int i;
 L=(LinkList *)malloc(sizeof(LinkList));
 r=L;
 for(i=0;i<n;i++)
 {
  s=(LinkList *)malloc(sizeof(LinkList));
  s->data=a[i];
  r->next=s;
  r=s;
 }
 r->next=NULL;
}

void mergelist_l(LinkList *la,LinkList *lb,LinkList *lc)
{
  struct LONDE pa,pb,pc;
  pa=la->next;   
  pb=lb->next;
  lc=la;
  pa=la;
  while(pa && pa)
  {
    if(pa->data<=pb->data)
    {
      pc->next=pa;
      pc=pa;
      pa=pa->next;
    }
    else
    {
      pc->next=pb;
      pc=pb;
      pb=pb->next;
    }
  }
  pc->next=pa?pa:pb;
  free(lb);
}

void main()
{
    int a[4]={1,3,4,5,6},b[3]={1,3,2,5};
    LinkList *sp1;
    LinkList *sp2;
    LinkList *sp3;
    initlist(sp1);
    initlist(sp2);
    initlist(sp3);
    creatlist(sp1, a[0], 5);
    creatlist(sp2, b[0], 4);
    mergelist_l(&sp1,&sp2,&sp3);
}
搜索更多相关主题的帖子: include 
2011-10-27 00:03
YueWuSS
Rank: 2
等 级:论坛游民
帖 子:15
专家分:96
注 册:2011-10-29
收藏
得分:4 
回复 楼主 新手老羊
//修改后的程序如下,修改部分已加色
#include<stdio.h>
 #include<stdlib.h>
 #include<malloc.h>
 
typedef struct LONDE
 {
   int data;
   struct LONDE *next;
 }LinkList;
 
void initlist(LinkList *L)  
 {
 L=(LinkList *)malloc(sizeof(LinkList));
 if(!L) return;
L->next=NULL;
 }
 

void creatlist(LinkList *L,int a[],int n) //函数名
{
    if(!L) return;
     LinkList *s,*r;
     int i;
// L=(LinkList *)malloc(sizeof(LinkList));
     r = L;
     for(i=0;i<n;i++)
    {
         s = (LinkList *)malloc(sizeof(LinkList));
         if(!s) return;
         s->data = a[i];
         s->next = NULL;
         r->next=s;
         r=s;
 }
 
 }
 
void mergelist_l(LinkList *la,LinkList *lb,LinkList *lc)
 {
     if(!(la&&lb&&lc)) return;
   struct LONDE *pa,*pb,*pc;
   pa=la->next;   
   pb=lb->next;
   //lc=la;
   pc=lc;
   while(pa && pb)
   {
     if(pa->data<=pb->data)
     {
       pc->next=pa;
       pc=pa;
       pa=pa->next;
     }
     else
    {
       pc->next=pb;
       pc=pb;
       pb=pb->next;
     }
   }
   pc->next=pa?pa:pb;
  // free(lb);
}

void deletef(LinkList *L)  //与init相对的清理函数
 {
     if(!L) return;
     LinkList *p = NULL;
     do
     {   
         p = L;
         L = L->next;
         free(p);
     }while(L);
 }

void main()
 {
     int a[5]={1,3,4,5,6},b[4]={1,2,3,5}; //初始值设定项太多
     LinkList *sp1 = NULL;
     LinkList *sp2 = NULL;
     LinkList *sp3 = NULL;
     initlist(sp1);
     initlist(sp2);
     initlist(sp3);
     creatlist(sp1, a, 5);  //“creatlist”: 不能将参数 2 从“int”转换为“int []”
     creatlist(sp2, b, 4);
     mergelist_l(sp1,sp2,sp3);//从“LinkList **”转换为“LinkList *”
     deletef(sp1);
     deletef(sp2);
     deletef(sp3);
     printf("OK!\n");

 }

[ 本帖最后由 YueWuSS 于 2011-10-29 04:08 编辑 ]
2011-10-29 04:06
快速回复:问题请教 不知道程序什么地方错了 拜求大神
数据加载中...
 
   



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

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