#include <stdio.h>
typedef struct LNode{
int data;
struct LNode* next;
}LNode,*linkList;
void initList(linkList &l)
{
l=new LNode;
if(l==NULL)
printf("分配内存失败\n");
else
{
l->next=NULL;
printf("初始化成功\n");
}
}
void insertList(linkList& l,int e,int r)
{
LNode* p=l;
int j=0;
while(p&&(j<r-1))
{p=p->next;++j;}
if(!p||(j>r-1))
printf("错误\n");
else
{
LNode* s=new LNode;
s->data=e;
s->next=p->next;
p->next=s;
}
}
int locateList(linkList l,int t,int n)
{
int i;
LNode* p=l->next;
for(i=0;i<n;i++)
{
if(p->data<t)
p=p->next;
else
break;
}
return i+1;
}
void addList(linkList &l,int n)
{
printf("输入元素:");
LNode *tail;
tail=new LNode;
tail=l;
for(int i=0;i<n;i++)
{
LNode* p;
p=new LNode;
int t;
scanf("%d",&t);
int r=locateList(l,t,i);
insertList(l,t,r);
// p->data=t;
// p->next=NULL;
// tail->next=p;
// tail=p;
}
}
void printList(linkList l)
{
LNode* p;
p=l->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int numList(linkList l,int t,int m)
{
int i;
LNode* p=l->next;
for(i=0;i<m;i++)
{
if(p->data<t)
p=p->next;
else if(p->data==t)
return i+1;
else
return 0;
}
//return 0;
}
void mergeList(linkList& la,linkList& lb,int n,int m)
{
LNode* pa=la->next;
LNode* pb=lb->next;
while(pb!=NULL)
{
int i=0;
int r=locateList(la,(pb->data),n+i);
int j=(numList(la,(pb->data),n+i));
printf("r=%d,j=%d,pb=%d\n",r,j,pb->data);
if(r!=j)
{
insertList(la,(pb->data),r);
pb=pb->next;i++;
}
else
{
pb=pb->next;
}
}
}
int main()
{
linkList la,lb;
printf("链表la:");
initList(la);
printf("链表lb:");
initList(lb);
int n;
printf("\nla添加元素个数:");
scanf("%d",&n);
addList(la,n);
printList(la);
int m;
printf("\nlb添加元素个数:");
scanf("%d",&m);
addList(lb,m);
printList(lb);
printf("\n合并为递增链表:");
mergeList(la,lb,n,m);
printList(la);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:548 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:512 |
DNA (C语言描述,数据结构)浏览:909 |
字符逆序 (C语言代码)浏览:645 |
A+B for Input-Output Practice (III) (C语言代码)浏览:594 |
核桃的数量 (C语言代码)浏览:893 |
用筛法求之N内的素数。 (C语言代码)浏览:595 |
模拟计算器 (C语言代码)浏览:2366 |
班级人数 (C语言代码)浏览:980 |