| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:请教下合并链表的算法
只看楼主 加入收藏
jzq357025230
Rank: 1
等 级:新手上路
帖 子:27
专家分:4
注 册:2009-2-17
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:2 
请教下合并链表的算法
LNode* magrelist(LNode *la,LNode *lb,LNode *lc)
{
    LNode *l1,*l2;
    l1=la;
    l2=lb;
    while((l1->next!=NULL)||(l2->next!=NULL)!=NULL)
    {
        if(l1->data>l2->data)
        {
            lc->next=l1;
            lc=l1;
            l1=l1->next;
        }
        else if(l1->data==l2->data)
        {
            lc->next=l1;
            lc=l1;
            l1=l1->next;l2=l2->next;
        }
        else
        {
            lc->next=l2;
            lc=l2;
            l2=l2->next;
        }
    }
    return lc;
}
这个算法错在哪里呢?
搜索更多相关主题的帖子: 算法 链表 
2009-11-01 17:20
hackerStar
Rank: 2
来 自:厦门
等 级:禁止访问
帖 子:66
专家分:71
注 册:2009-10-29
收藏
得分:10 
好像有点复杂
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{if (tmp==NULL) /*delete first node*/
 return pointer->next;
else
{ if(tmp->next->next==NULL)/*delete last node*/
  tmp->next=NULL;
 else /*delete the other node*/
  tmp->next=tmp->next->next;
 return pointer;
}
}
void selection_sort(link pointer,int num)
{ link tmp,btmp;
 int i,min;
 for(i=0;i<num;i++)
 {
 tmp=pointer;
 min=tmp->data;
 btmp=NULL;
 while(tmp->next)
 { if(min>tmp->next->data)
 {min=tmp->next->data;
  btmp=tmp;
 }
 tmp=tmp->next;
 }
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
}
}
link create_list(int array[],int num)
{ link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i<num;i++)
{ tmp2=(link)malloc(sizeof(node));
 tmp2->next=NULL;
 tmp2->data=array[i];
 tmp1->next=tmp2;
 tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer1,link pointer2)
{ link tmp;
tmp=pointer1;
while(tmp->next)
 tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
void main(void)
{ int arr1[]={3,12,8,9,11};
 link ptr;
 ptr=create_list(arr1,5);
 selection_sort(ptr,5);
}

-------------->>>>>信仰火之意识,崇拜黑客精神<<<<<--------------------
2009-11-01 19:44
jzq357025230
Rank: 1
等 级:新手上路
帖 子:27
专家分:4
注 册:2009-2-17
收藏
得分:0 
谢谢LS,不过我希望有人指点下我的函数错在哪.
2009-11-01 22:13
快速回复:请教下合并链表的算法
数据加载中...
 
   



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

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