C++程序设计实践指导1.7超长数列中n个数排序改写要求实现
改写要求1:将以上程序改写为适合超长整数
改写要求2:将以上程序改写为适合超长数列
改写要求3:将数列中指定位置m开始的n个结点重新按降序排序
改写要求4:输出指定位置m开始的n个结点的超长整数
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
struct LongIntegerNode
{
short int data;
LongIntegerNode *next;
}; struct LinkNode
{
LongIntegerNode *pLongIntegerNode;
LinkNode *next;
};
class LIST
{
public:
struct LongIntegerNode* creat(string str);
struct LinkNode* add(LinkNode* Head,LongIntegerNode* pHead);
struct LinkNode* sortpart(LinkNode* Head,int m,int n);
void output(LinkNode* Head)
{
LinkNode* p;
p=Head->next;
LongIntegerNode* q;
while(p)
{
q=p->pLongIntegerNode->next;
while(q)
{
cout<<q->data;
q=q->next;
}
cout<<endl;
p=p->next;
}
}
void show(LinkNode* Head,int n)
{
LinkNode* p;
p=Head;
LongIntegerNode* q;
while(n)
{
q=p->pLongIntegerNode->next;
while(q)
{
cout<<q->data;
q=q->next;
}
cout<<endl;
p=p->next;
n--;
}
} }; LinkNode* LIST::add(LinkNode* node,LongIntegerNode* pHead)
{
LinkNode* newLinkNode=new LinkNode;
newLinkNode->next=NULL;
newLinkNode->pLongIntegerNode=pHead;
node->next=newLinkNode;
node=newLinkNode;
return node;
} LongIntegerNode* LIST::creat(string str)
{
string s=str.substr(,);
int i=;
LongIntegerNode* pHead=new LongIntegerNode;
pHead->next=NULL;
LongIntegerNode* p;
p=pHead;
while(s.length())
{
LongIntegerNode* newLongIntegerNode=new LongIntegerNode;
newLongIntegerNode->next=NULL;
newLongIntegerNode->data=atoi(s.c_str());
p->next=newLongIntegerNode;
p=newLongIntegerNode;
if(s.length()<)
return pHead;
s=str.substr(i,);
i=i+;
}
return pHead;
} LinkNode* LIST::sortpart(LinkNode* Head,int m,int n)
{
int x=m;
int y=n;
int temp;
LinkNode* p=Head->next;
LinkNode* q;
LongIntegerNode* t,*s;
while(x)
{
p=p->next;
x--;
}
q=p;
while(y)
{
for(t=p->pLongIntegerNode;t!=NULL;t=t->next)
{
for(s=t->next;s!=NULL;s=s->next)
{ if(t->data<s->data)
{
temp=t->data;
t->data=s->data;
s->data=temp; }
}
} p=p->next;
y--;
}
return q;
} int main(int argc, char *argv[])
{
LIST list;
LinkNode* Head=new LinkNode;
Head->next=NULL;
LinkNode* sort;
LinkNode* tail;
tail=Head;
string str;
cin>>str;
while(str!="exit")
{
LongIntegerNode* pHead;
pHead=list.creat(str); tail=list.add(tail,pHead);
cin>>str;
}
sort=list.sortpart(Head,,);
list.output(Head);
cout<<"输出指定的排序数列"<<endl;
list.show(sort,);
system("PAUSE");
return EXIT_SUCCESS;
}
C++程序设计实践指导1.7超长数列中n个数排序改写要求实现的更多相关文章
- C++程序设计实践指导1.1删除序列中相同的数改写要求实现
改写要求1:改写为以指针为数据结构 #include <iostream> #include <cstdlib> using namespace std; class ARP ...
- C++程序设计实践指导1.5求两个整数集合并集改写要求实现
改写要求1:改写为单链表结构可以对任意长度整数集合求并集 #include <cstdlib> #include <iostream> using namespace std; ...
- C++程序设计实践指导1.2二维数组的操作运算改写要求实现
改写要求1:改写为以单链表表示二维数组 #include <cstdlib> #include <iostream> using namespace std; struct L ...
- C++程序设计实践指导1.4正整数转换为字符串改写要求实现
改写要求1:改为适合处理超长整数 #include <cstdlib> #include <iostream> #include <string> using na ...
- C++程序设计实践指导1.15找出回文数改写要求实现
改写要求1:用单链表实现 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode ...
- C++程序设计实践指导1.14字符串交叉插入改写要求实现
改写要求:1:以指针为数据结构开辟存储空间 改写要求2:被插入字符串和插入字符串不等长,设计程序间隔插入 如被插入字符串长度为12,待插入字符串长度为5 则插入间隔为2 改写要求3:添加函数Inser ...
- C++程序设计实践指导1.13自然数集中找合数改写要求实现
改写要求1:用单链表实现 改写要求2:析构函数中依次将链表结点删除 #include <cstdlib> #include <iostream> using namespace ...
- C++程序设计实践指导1.12数组中数据线性变换改写要求实现
改写要求1:分别用指针pa.pb代替数组 改写要求2:从键盘输入data元素 元素个数任意,输入0结束 #include <cstdlib> #include <iostream&g ...
- C++程序设计实践指导1.10二维数组元素换位改写要求实现
改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数Double ...
随机推荐
- 阿里云 Debian Linux 布署记录
摘要: 主要安装了web环境,java+tomcat+mysql+nginx(暂没没用) 数据盘挂载在/data下,项目,索引都放/data目录下 java,tomcat,mysql程序都在/root ...
- C# 广播TS流精确计时发送
广播传输相关的项目,需求是UDP发送TS到IP/ASI网关,网关经过ASI输出到激励器,再由激励器通过射频天线输出,接收端为终端机顶盒. 因为以前没有怎么接触过广播相关的东西,一开始认为用C#写个UD ...
- 关于mysql中数据存储复合树形结构,查询时结果按树形结构输出
1.主要思想:根据已有数据,规则性的造数据 select * FROM(select lId,strName,lId as lParentId,-1 as orderIdx from tbClassi ...
- 学习第一个头文件stdio.h
使用标准输入输出库函数时要用到 “stdio.h”文件,因此源文件开头应有以下预编译命令: #include<stdio.h> stdio是standard input&outup ...
- log4net使用(包括单个文件和按日期生成多个文件)
1.log4net生成单个文件 直接将这段代码考到config中即可用 <log4net> <!--定义输出到文件中--> <appender name="Lo ...
- Multi-Channel MAC for Ad Hoc Networks: Handling Multi-Channel Hidden Terminals Using A Single Transceiver
MAC协议 2004 这是一个单纯的Multi-Channel Ad Hoc场景,多信道,但不是DSA.没有PU,只是多信道利用问题,相对传统Ad Hoc,要解决的就是1)信道访问(如何使用多个信道) ...
- C# Directory类
Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多个目录. 2.Dele ...
- ArcGIS API for Silverlight中专题地图的实现浅析
原文http://www.gisall.com/html/32/7232-2418.html 专题地图是突出表现特定主题或者属性的地图.常见专题地图类型有唯一值渲染,分类渲染,柱状图,饼状图,点密度图 ...
- shell字符串
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 str='this ...
- tomcat,tomcat7配置https
<一,>,tomcat7配置https 1,生成keystore文件及导出证书