关于c语言课程设计链表的两个问题。。(高分求助) 非常急。。。。!!。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于c语言课程设计链表的两个问题。。(高分求助) 非常急。。。。!!。相关的知识,希望对你有一定的参考价值。
(问题原题如下,知道任何一题都可回答)(回答的好一题加100分)谢谢。。。。。 链表(每一功能用一函数实现): 1.先建立两个有序的单链表,再将其合并成一个有序的单链表。。 2.先建立一若干个结点构成的单链表,统计其中数据域值为x的结点的个数,再对该单链表进行复制。。。。。
参考技术A #include<iostream>
using
namespace
std;
struct
NODE
int
data;
NODE
*next;
;
void
dataAdd(NODE
*(&list),int
data)
//在链表尾增加一个新的节点
NODE
*newNode,*p;
newNode=new
NODE;
newNode->data=data;
p=list;
if(!p)
//如果list为空,头结点赋值为当前值
list=newNode;
list->next=NULL;
return
;
while(p->next)
p=p->next;
p->next=newNode;
newNode->next=NULL;
void
inputData(NODE
*(&list))
int
data;
cin>>data;
while(!cin.fail())
dataAdd(list,data);
cin>>data;
cin.clear();
cin.sync();
int
lastData(NODE
*list)
NODE
*p=list;
if(!p)
return
-1;
while(p->next)
p=p->next;
return
p->data;
void
sortList(NODE
*(&list))
NODE
*p,*q;
p=list;
int
temp;
while(p->next)
q=p->next;
while(q)
if(p->data>q->data)
temp=p->data;
p->data=q->data;
q->data=temp;
q=q->next;
p=p->next;
void
combination(NODE
*list1,NODE
*list2,NODE
*(&list3))
NODE
*p=list1;
NODE
*q=list2;
while(p
&&
q)
if(p->data
<
q->data
)
if(lastData(list3)!=p->data)
dataAdd(list3,p->data);
p=p->next;
else
if(p->data
>
q->data)
if(lastData(list3)!=q->data)
dataAdd(list3,q->data);
q=q->next;
else
if(p->data
==
q->data)
if(lastData(list3)!=p->data)
dataAdd(list3,p->data);
p=p->next;
q=q->next;
while(p)
if(lastData(list3)!=p->data)
dataAdd(list3,p->data);
p=p->next;
while(q)
if(lastData(list3)!=q->data)
dataAdd(list3,q->data);
q=q->next;
void
showList(NODE
*list)
//显示链表中的数据
NODE
*p;
p=list;
while(p)
cout<<p->data<<'
';
p=p->next;
cout<<endl;
int
main()
NODE
*list1=NULL,*list2=NULL;
cout<<"请输入链表1的数据,非数字字符为结束符!"<<endl;
inputData(list1);
sortList(list1);
//list1排序
//showList(list1);
cout<<endl;
cout<<"请输入链表2的数据,非数字字符为结束符!"<<endl;
inputData(list2);
sortList(list2);
//list2排序
NODE
*list3=NULL;
cout<<"list1和list2的并集为:"<<endl;
combination(list1,list2,list3);
showList(list3);
cout<<endl;
return
0;
以上是关于关于c语言课程设计链表的两个问题。。(高分求助) 非常急。。。。!!。的主要内容,如果未能解决你的问题,请参考以下文章