分享

有2个线性表AB的数据域为整数且有序递增 以链接表为存储结构 将AB中相同的元素合并为C且...

 曾经艰难走过 2010-03-11

已解决问题

有2个线性表AB的数据域为整数且有序递增 以链接表为存储结构 将AB中相同的元素合并为C且C中元素也递增有序

25
有2个线性表AB的数据域为整数且有序递增 以链接表为存储结构 将AB中相同的元素合并为C且C中元素也递增有序
问题补充  2009-03-12 14:16
用C++作
第陸根萫煙 回答:1 人气:6 解决时间:2009-03-14 17:55
满意答案
贴上去的程序,排列不好,要排列好的加扣Q: 2 7 8 9 8 2 2 8
#include "list"
#include <iostream>
using namespace std;
list<int> A;
list<int> B;
list<int> C;
int main(int argc, char* argv[])
{
int arryA[] = { 1, 2, 3, 4, 5, 6};
int arryB[] = { 2, 4, 6, 8};

int sizeA = sizeof(arryA)/sizeof(int);
int sizeB = sizeof(arryB)/sizeof(int);

int i = 0;
for(i = 0; i < sizeA; i++)
{
A.push_back(arryA[i]);
}
for(i = 0; i < sizeB; i++)
{
B.push_back(arryB[i]);
}

list<int>::iterator pA = A.begin();
list<int>::iterator pB = B.begin();
while(pA != A.end() && pB !=B.end())
{
if(*pA < *pB)
{
C.push_back(*pA);
pA++;
}
else if(*pA > *pB)
{
C.push_back(*pB);
pB++;
}
else
{
C.push_back(*pA);
pA++;
pB++;
}

}

while(pA != A.end())
{
C.push_back(*pA);
pA++;
}

while(pB != B.end())
{
C.push_back(*pB);
pB++;
}

for(list<int>::iterator pC = C.begin(); pC != C.end(); pC++)
{
printf("%d \t", *pC);
}
printf("\n");
return 0;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约