请设计一个算法,,求A和B两个单链表表示的集合的交集、并集、差集 已知递增有序的两个单链表A,B分别存储了一个集合。设计算法实...

\u8bbe\u8ba1\u4e00\u4e2a\u7b97\u6cd5\u6c42A\u548cB\u4e24\u4e2a\u5355\u94fe\u8868\u8868\u793a\u7684\u96c6\u5408\u7684\u4ea4\u96c6\u3001\u5e76\u96c6\u3001\u5dee\u96c6,\u8981\u90a3\u79cd\u53ef\u4ee5\u8f93\u5165\u96c6\u5408\u9a8c\u8bc1\u7684\u90a3\u79cd\uff0c\u5728C++\u73af\u5883\u4e0b

\u7b97\u6cd5\u8bf7\u53c2\u8003STL\u7684\u5b9e\u73b0\u6e90\u7801\uff0c\u4f8b\u5b50\u5982\u4e0b
#include "stdafx.h"



#include
#include
#include

int main ()
{
std::list lstVal1, lstVal2;
lstVal1.push_back(1);
lstVal1.push_back(2);
lstVal1.push_back(3);
lstVal2.push_back(3);
lstVal2.push_back(4);
lstVal2.push_back(5);

/// \u6c42\u94fe\u8868\u5e76\u96c6.
std::set_union(lstVal1.begin(), lstVal1.end(), lstVal2.begin(), lstVal2.end(), std::ostream_iterator(std::cout, " "));
std::cout << std::endl;

/// \u6c42\u94fe\u8868\u4ea4\u96c6.
std::set_intersection(lstVal1.begin(), lstVal1.end(), lstVal2.begin(), lstVal2.end(), std::ostream_iterator(std::cout, " "));
std::cout << std::endl;

/// \u6c42\u94fe\u8868\u5dee.
std::set_difference(lstVal1.begin(), lstVal1.end(), lstVal2.begin(), lstVal2.end(), std::ostream_iterator(std::cout, " "));
std::cout << std::endl;

return 0;
}
\u8f93\u51fa
1 2 3 4 5
3
1 2
\u8bf7\u6309\u4efb\u610f\u952e\u7ee7\u7eed. . .

\u6ce8\u610f: \u53c2\u4e0e\u7684\u94fe\u8868\u8981\u6c42\u5df2\u7ecf\u6309\u76f8\u540c\u7684\u51c6\u5219\u6392\u5e8f

1\u3001\u9996\u5148\uff0c\u7528for\u5faa\u73af\u8f93\u5165\u4e24\u4e2a\u96c6\u5408\u653e\u5230a\u3001b\u4e24\u4e2a\u6570\u7ec4\u4e2d\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002

2\u3001\u7136\u540e\u7528\u4e24\u4e2afor\u5faa\u73af\u548cif\u8bed\u53e5\u6765\u5224\u65ad\u4e24\u4e2a\u6570\u7ec4\u6709\u6ca1\u6709\u4e00\u6837\u7684\u5143\u7d20\u3002\u5982\u679c\u6709\uff0c\u8fdb\u884c\u8d4b\u503c\u3002\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u6570\u636e\uff0c\u6765\u8fdb\u884c\u8f93\u5165\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002

3\u3001\u6700\u540e\u7528for\u5faa\u73af\u8fdb\u884c\u8f93\u51fa\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002

4\u3001\u6700\u540e\u70b9\u51fb\u9875\u9762\u4e0a\u65b9\u7684\u7f16\u8bd1\u8fd0\u884c\uff0c\u5c31\u80fd\u770b\u5230\u7ed3\u679c\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u5c31\u5b8c\u6210\u4e86\u3002

#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{char data; /*定义了数据域,这里存储的是char类型*/
struct Node*next; /*定义了指针域*/
}*linklist;

void readdata(linklist head)
{ linklist p;
char a;
scanf("%c",&a);
while(a!='\n')
{ p=(linklist)malloc(sizeof(structNode));
p->data=a;
p->next=head->next;
head->next=p;
scanf("%c",&a);
}
}

void pop(linklist head)
{ linklist p;
p=head->next;
while(p!=NULL)
{ printf("%c",p->data);
p=p->next;
}
printf("\n");
}
/******求两个链表的并集******/
void bingji(linklist head1,linklisthead2,linklist head3)
{ linklist p1,p2,p3;
p1=head1->next;
while(p1!=NULL)
{ p2=head2->next;
while((p2!=NULL)&&(p2->data!=p1->data))
p2=p2->next;
if((p2!=NULL)&&(p2->data==p1->data))
{ p3=(linklist)malloc(sizeof(struct Node));
p3->data=p1->data;
p3->next=head3->next;
head3->next=p3; }
p1=p1->next; } }
/********求两个链表的交集********/
void jiaoji(linklist head1,linklisthead2,linklist head3)
{ linklist p1,p2,p3;
p1=head1->next;
while(p1!=NULL)
{ p3=(linklist)malloc(sizeof(struct Node));
p3->data=p1->data;
p3->next=head3->next;
head3->next=p3;
p1=p1->next; }
p2=head2->next;
while(p2!=NULL)
{ p1=head1->next;
while((p1!=NULL)&&(p1->data!=p2->data))
p1=p1->next;
if (p1==NULL)
{ p3=(linklist)malloc(sizeof(struct Node));
p3->data=p2->data;
p3->next=head3->next;
head3->next=p3; }
p2=p2->next;
}
}
/********求两个链表的差集************/
void chaji(linklist head1,linklisthead2,linklist head3)
{ linklist p1,p2,p3;
p1=head1->next;
while(p1!=NULL) //循环语句执行链表的差集运算
{ p2=head2->next;
while((p2!=NULL)&&(p2->data!=p1->data))
p2=p2->next;
if(p2==NULL)
{ p3=(linklist)malloc(sizeof(struct Node));
p3->data=p1->data;
p3->next=head3->next;
head3->next=p3;
}
p1=p1->next;
}
}

void main(linklist head1,linklisthead2,linklist head3)
{
int x;
printf("input values and end up with ‘enter’ \n");
head1=(linklist)malloc(sizeof(struct Node)); /*为结点分配内存空间*/
head1->next=NULL;
head2=(linklist)malloc(sizeof(struct Node));
head2->next=NULL;
head3=(linklist)malloc(sizeof(struct Node));
head3->next=NULL;
printf("please input ji he 1 \n");
readdata(head1);
printf("please input ji he 2 \n"); //调用链表输出函数链表数据
readdata(head2);
A:printf("1.bing ji 2.jiaoji 3.cha ji 4.exit \n");
do{
printf("qing xuan ze xu hao\n");
scanf("%d",&x);
switch(x)
{
case 1:
printf("liang ge ji he debing ji shi \n");
jiaoji(head1,head2,head3);
pop(head3);
head3->next=NULL;
break;
case 2:
printf("liang ge ji he dejiao ji shi \n");
bingji(head1,head2,head3);
pop(head3);
head3->next=NULL;
break;
case 3:
printf("liang ge ji he decha ji shi \n");
chaji(head1,head2,head3);
pop(head3);
head3->next=NULL;
break;
case 4: break;
default:goto A; }
}
while(x!=4);
}

你好哦。
很高兴看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
祝你好运~!
希望我的回答也能够帮到你!
谢谢

  • ...b姹鍑哄畠浠殑鍜,绉,骞虫柟鍜,鍜鐨勫钩鏂(鍦涓涓畻娉瀹屾垚)
    绛旓細鍦ㄤ竴涓祦绋嬪浘涓敾鍑虹畻娉:杈撳叆涓や釜鏁癮,b姹鍑哄畠浠殑鍜,绉,骞虫柟鍜,鍜岀殑骞虫柟(鍦涓涓畻娉瀹屾垚)  鎴戞潵绛 1涓洖绛 #鐑# 璇ヤ笉璇ヨ瀛╁瓙寰堟棭瀛︿範浜烘儏涓栨晠?Cool_hot_like 2014-10-21 路 TA鑾峰緱瓒呰繃3.9涓囦釜璧 鐭ラ亾澶ф湁鍙负绛斾富 鍥炵瓟閲:3.5涓 閲囩撼鐜:85% 甯姪鐨勪汉:3485涓 鎴戜篃鍘荤瓟棰樿闂釜浜...
  • a,b涓烘暣鏁,涓攁鍔燽绛変簬涓鐧,璁捐涓涓畻娉,姹浣縜b鍙栨渶澶у肩殑a,b鐨勫...
    绛旓細a+b=100,b=100-a;ab鏈澶у煎氨鏄 a(100-a)鐨勬渶澶у笺俛浠0寮濮嬪姞锛岀洿鍒癮(100-a)>(a+1)(100-(a+1)) 杩欐椂灏辩畻鍑轰簡a鐨勫硷紝鐒跺悗b=100-a;
  • ...閾捐〃A,B鍒嗗埆瀛樺偍浜涓涓闆嗗悎銆璁捐绠楁硶瀹炵幇姹備袱涓闆嗗悎鐨勪氦闆嗙殑杩愮畻A...
    绛旓細1銆侀鍏堬紝鐢╢or寰幆杈撳叆涓や釜闆嗗悎鏀惧埌a銆b涓や釜鏁扮粍涓紝濡備笅鍥炬墍绀恒2銆佺劧鍚庣敤涓や釜for寰幆鍜宨f璇彞鏉ュ垽鏂袱涓暟缁勬湁娌℃湁涓鏍风殑鍏冪礌銆傚鏋滄湁锛岃繘琛岃祴鍊笺傚彲浠ユ牴鎹嚜宸辩殑鏁版嵁锛屾潵杩涜杈撳叆锛屽涓嬪浘鎵绀恒3銆佹渶鍚庣敤for寰幆杩涜杈撳嚭锛屽涓嬪浘鎵绀恒4銆佹渶鍚庣偣鍑婚〉闈笂鏂圭殑缂栬瘧杩愯锛屽氨鑳界湅鍒扮粨鏋滐紝濡備笅鍥炬墍绀...
  • 宸茬煡a,b灞炰簬姝f暣鏁,a+b=10,璁捐涓涓畻娉,姹鍑篴b鐨勬渶澶у,鍐欏嚭浼唬鐮
    绛旓細ab=a(10-a) =10a-a^2 =-(a^2-10a+25)+25 =-(a-5)^2+25 褰揳=5鏃讹紝涓婂紡鍙彇鍒版渶澶у硷紝鏈澶у间负25
  • 鏁版嵁缁撴瀯绠楁硶 涓ょ嚎鎬ц〃A,B姹浜ら泦銆傘傘傝楂樻墜鎸囩偣!!!
    绛旓細灏A涓嶣鍒嗗埆鎺掑簭锛岀劧鍚庢眰浜ゃ備緥濡傦細灏咥涓嶣鎸夊崌搴忔帓鍒楋紝璁続琛ㄥご涓篜锛孊琛ㄥご涓篞锛岃嫢A[P]>B[Q]閭d箞Q++锛岃嫢A[P]<B[Q]閭d箞P++锛涘鏋淎[P]=B[Q]锛孮++銆丳++锛孋ount++锛孉nd[Count]=B[Q-1]锛涘綋P鎴栬匭鍏朵腑涓涓杈惧埌浜咥鎴栬匓鐨勮〃灏 绠楁硶缁撴潫銆備互涓嬫槸鍙傝冪▼搴忥細//--- include <stdio.h> ...
  • ...涓や釜闆嗗悎,鍏跺厓绱犻掑鎺掑垪銆璇疯璁$畻娉曟眰鍑A涓嶣鐨勪氦闆,骞跺瓨鏀句簬A閾 ...
    绛旓細void Mix(LinkList& La, LinkList& Lb, LinkList& Lc, ) { pa=la->next;pb=lb->next;鈭ヨ宸ヤ綔鎸囬拡pa鍜pb锛汱c=pc=La; //鐢↙a鐨勫ご缁撶偣浣滀负Lc鐨勫ご缁撶偣 while(pa&&pb)if(pa->data==pb->data)鈭ヤ氦闆嗗苟鍏ョ粨鏋滆〃涓倇 pc->next=pa;pc=pa;pa=pa->next;u=pb;pb=pb->next; delete...
  • 璁捐涓涓畻娉,杈撳叆涓や釜鏁存暟a,b,鍒ゆ柇a鏄惁鑳借b鏁撮櫎
    绛旓細澶ц嚧鎬濊矾鍙互 杩欐牱锛屼笉濡ㄥ亣璁捐緭鍏ョ殑a>绛変簬b锛岀劧鍚庝綘寮曞叆涓涓鏂板彉閲廲锛岃c鍒濆鍊间负1锛屽苟璁ヽ+1鐨勫奸檮鍊肩粰c锛屾潯浠舵槸c<a锛宑<a鏃跺惊鐜紝鍒ゆ柇a涓巄c鏄惁鐩哥瓑锛岀浉绛夌殑鏃跺欒烦鍑哄惊鐜紝骞惰緭鍑鸿兘鏁撮櫎
  • 鏈涓や釜鏁板煎彉閲忓垎鍒负a涓巄,璇曞啓绠楁硶,瀹炵幇a涓巄鍊肩殑浜や簰
    绛旓細涔熷彲浠ュ埄鐢ㄦ眹缂 main(){ int a = 49,b=2;__asm { push a push b pop a pop b } printf("a=%d b=%d\n",a,b);}
  • c璇█涓氦鎹銆b涓や釜鏁扮殑涓绉绠楁硶
    绛旓細绗竴娆℃壘鍑轰笉鍚岀殑鍦版柟锛屽苟灏嗕笉鍚屼箣澶勭敤1鏍囪骞惰祴缁檃锛岀劧鍚庣敤b鍜屼笉鍚岃繘琛屽姣旓紝鍙嶈繃鏉ュ緱鍒癮鐨勫硷紝a鐨勫煎彂鐢熸敼鍙锛宐鍙樻垚a鐨勫師鍊硷紝鍚庝竴姝ュ悓鐞嗐傛妸涓や釜鏁板啓鎴愪簩杩涘埗鐨勫舰寮忊滃紓鈥濅竴涓嬪氨鐭ラ亾浜嗐
  • 鐢ㄤ紶缁熸祦绋嬪浘琛ㄧず姹傝В浠ヤ笅绠楁硶:1銆佹湁涓や釜鐡跺瓙A鍜孊,鍒嗗埆鐩涙斁閱嬪拰閰辨补...
    绛旓細寮濮 鈫 A=>i 鈫 B=>t 鈫 t=>i 鈫 | i=>t |锛堢珫绾垮叏閮借繛璧锋潵,鍦╰=>i涓嬮潰锛夆啌 鈫恷 杈撳嚭锛堝彲鐪佺暐锛夆啌 缁撴潫 璁$畻鏈鸿瑷鍙槸涓绉嶅伐鍏枫傚厜瀛︿範璇█鐨勮鍒欒繕涓嶅锛屾渶閲嶈鐨勬槸瀛︿細閽堝鍚勭绫诲瀷鐨勯棶棰橈紝鎷熷畾鍑烘湁鏁堢殑瑙e喅鏂规硶鍜屾楠ゅ嵆绠楁硶銆傛湁浜嗘纭屾湁鏁堢殑绠楁硶锛鍙互鍒╃敤浠讳綍涓绉嶈绠楁満楂樼骇璇█...
  • 扩展阅读:扫描计数 ... 几何计算器 ... 数学中彐和倒a ... 设计求n的阶乘的算法 ... 求解方程计算器 ... 如何设计一个算法 ... 计算计算器 ... 配对测试 ... ≈约等于怎么算 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网