实训C++语言设计——接受两个非递减的线性表,并将它们合并为非递减的Lc
来源:互联网 发布:高校大数据平台 编辑:程序博客网 时间:2024/06/07 04:51
平台:VC++ 2005 测试通过!
.vcproj
这是使用应用程序向导生成的 VC++ 项目的主项目文件。
它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
StdAfx.h, StdAfx.cpp
这些文件用于生成名为 twod.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
这些都是使用应用程序向导生成的 VC++ 文件故不列出
我只列出程序主要部分!
// MergeList_Vector.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
void MergeList_L( const vector<int>& La, const vector<int>& Lb, vector<int>& Lc);
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> La, Lb, Lc;
cout <<"****************MergeList*******************"<<endl;
cout <<"请输入La线性表的元素(元素间用空格隔开, -1为序列结束符): ";
int input = -1;
while ( (cin >> input) && ( input != -1 ))
La.push_back(input);
cout <<"请输入Lb线性表的元素(元素间用空格隔开, -1为序列结束符): ";
input = -1;
while ( (cin >> input) && ( input != -1 ))
Lb.push_back(input);
//对La,Lb的元素进行排序,得到两个非递减的线性表
vector<int>::iterator pos;
sort(La.begin(), La.end());
cout <<"La排序后的内容: ";
for ( int i = 0; i < La.size(); i++)
cout << La[i] <<" ";
cout << endl;
sort(Lb.begin(), Lb.end());
cout <<"Lb排序后的内容: ";
for ( int i = 0; i < Lb.size(); i++)
cout << Lb[i] <<" ";
cout << endl;
Lc.resize(Lc.size() + (La.size()+Lb.size()));
MergeList_Sq(La, Lb, Lc);
cout <<"Lc的内容: ";
for ( int i = 0; i < Lc.size(); i++)
cout << Lc[i] <<" ";
cout << endl;
return 0;
}
//接受两个非递减的线性表,并将它们合并为非递减的Lc
void MergeList_Sq( const vector<int>& La, const vector<int>& Lb, vector<int>& Lc)
{
vector<int>::const_iterator pa = La.begin();
vector<int>::const_iterator pb = Lb.begin();
vector<int>::const_iterator pa_last = La.end();
vector<int>::const_iterator pb_last = Lb.end();
vector<int>::iterator pc = Lc.begin();
//注意while循环中是pa < pa_last而不是pa <= pa_last
//这是因为pa_last是指向向量中最末一个元素的下一个位置
while ( (pa < pa_last) && (pb < pb_last) ){
if( *pa <= *pb ) *pc++ = *pa++;
else *pc++ = *pb++;
}
while ( pa < pa_last ) *pc++ = *pa++;
while ( pb < pb_last ) *pc++ = *pb++;
}
- 实训C++语言设计——接受两个非递减的线性表,并将它们合并为非递减的Lc
- 基于c语言严蔚敏版的数据结构—非递减线性表的合并
- 有两个顺序表LA,LB,其元素均为非递减有序排列,编写算法将它们合并成一个顺序表LC,要求LC也是非递减有序排列。
- 将非递减的A表和B表合并为C表,且C表也是非递减的
- 将两个非递减的有序链表合并为一个非递增的有序链表(C语言编程实现)
- 线性表LA和LB非递减有序排列,将LA,LB进行归并为新的线性表LC,要求LC中的数据元素扔非递减有序列排列
- 将两个非递减的有序链表合并为一个非递增的有序链表
- 两个非递减数组的合并
- 【链表】merge两个非递减的链表为一个非递减的链表
- 基于单链表的两个非递减有序表的合并
- 两个非递减有序表的合并_Page_39
- 顺序表的应用举例(顺序表A和顺序表B的元素都是非递减排列,利用顺序表的基本运算,将它们合并成一个顺序表C,要求C也是非递减序列。)
- 将两个有序表合并成一个非递减的有序表算法
- 非递减顺序表的合并
- 非递减顺序表的合并
- 链式表的非递减数列合并
- 顺序表的非递减数列合并
- 数组表示的线性表(顺序表)的基本操作,以及合并两个非递减数组线性表
- 带图片的,多列的DropDownList(转自孟宪会之精彩世界)
- 从今天开始建立自己的博客
- 实训C++语言设计——二进、八进和十六进制 表输出
- 中国惠普前总裁孙振耀的毕生经验之谈
- 用二级指针求解二叉树根节点
- 实训C++语言设计——接受两个非递减的线性表,并将它们合并为非递减的Lc
- 孙振耀撰文谈退休并畅谈人生
- DOM 文档对象事件模型及示例
- 覆盖层
- JS获得DataGrid的值
- 5个ASP.NET小技巧~
- css 命名规范...
- 用Jboss开发时如何摆脱部署的麻烦?
- 我的 C#+flash socket 聊天程序(C#源代码)