改写要求1:动态生成单链表存储

#include <cstdlib>
#include <iostream> using namespace std;
struct LinkNode
{
int data;
struct LinkNode *next;
};
class NUM
{
int n;
public:
NUM(int x)
{
n=x;
}
struct LinkNode * descrease();
void show(LinkNode* pHead)
{
LinkNode* p;
p=pHead;
p=p->next;
cout<<"n= "<<n<<endl;
while(p)
{
cout<<p->data;
p=p->next;
}
cout<<endl;
}
}; struct LinkNode * NUM::descrease()
{
LinkNode* pHead=new LinkNode;
pHead->next=NULL;
LinkNode* p;
LinkNode* q;
p=pHead;
int temp;
int x=n;
while(x)
{
LinkNode* newLinkNode=new LinkNode;
newLinkNode->next=NULL;
newLinkNode->data=x%10;
x=x/10;
p->next=newLinkNode;
p=newLinkNode;
}
for(p=pHead;p!=NULL;p=p->next)
for(q=p->next;q!=NULL;q=q->next)
{
if(p->data<q->data)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
return pHead;
} int main(int argc, char *argv[])
{
int n;
LinkNode* pHead;
cout<<"Input n: ";
cin>>n;
NUM num(n);
pHead=num.descrease();
num.show(pHead);
system("PAUSE");
return EXIT_SUCCESS;
}

  改写要求2:以最大、最小、次最大、次最小等间隔排序

#include <cstdlib>
#include <iostream> using namespace std;
struct LinkNode
{
int data;
struct LinkNode *next;
};
class NUM
{
int n;
int sum;
public:
NUM(int x)
{
n=x;
}
struct LinkNode * descrease();
void show(LinkNode* pHead)
{
LinkNode* p;
p=pHead;
p=p->next;
cout<<"n= "<<n<<endl;
cout<<"sum= "<<sum<<endl;
while(p)
{
cout<<p->data;
p=p->next;
}
cout<<endl;
}
}; struct LinkNode * NUM::descrease()
{
LinkNode* pHead=new LinkNode;
pHead->next=NULL;
LinkNode* p;
LinkNode* q;
p=pHead;
int temp;
int x=n;
bool flag=true;
sum=;
while(x)
{
LinkNode* newLinkNode=new LinkNode;
newLinkNode->next=NULL;
newLinkNode->data=x%;
sum+=newLinkNode->data;
x=x/;
p->next=newLinkNode;
p=newLinkNode; }
for(p=pHead->next;p!=NULL;p=p->next)
{
if(flag)
{
for(q=p->next;q!=NULL;q=q->next)
{
if(p->data<q->data)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
} }else{
for(q=p->next;q!=NULL;q=q->next)
{
if(p->data>q->data)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
} }
flag=!flag;
}
return pHead;
} int main(int argc, char *argv[])
{
int n;
LinkNode* pHead;
cout<<"Input n: ";
cin>>n;
NUM num(n);
pHead=num.descrease();
num.show(pHead);
system("PAUSE");
return EXIT_SUCCESS;
}

C++程序设计实践指导1.3求任意整数降序数改写要求实现的更多相关文章

  1. C++程序设计实践指导1.5求两个整数集合并集改写要求实现

    改写要求1:改写为单链表结构可以对任意长度整数集合求并集 #include <cstdlib> #include <iostream> using namespace std; ...

  2. C++程序设计实践指导1.8求指定范围内的所有素数改写要求实现

    改写要求1:以指针为数据结构动态开辟存储空间 #include <cstdlib> #include <iostream> using namespace std; class ...

  3. C++程序设计实践指导1.15找出回文数改写要求实现

    改写要求1:用单链表实现 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode ...

  4. C++程序设计实践指导1.10二维数组元素换位改写要求实现

    改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数Double ...

  5. C++程序设计实践指导1.12数组中数据线性变换改写要求实现

    改写要求1:分别用指针pa.pb代替数组 改写要求2:从键盘输入data元素 元素个数任意,输入0结束 #include <cstdlib> #include <iostream&g ...

  6. C++程序设计实践指导1.14字符串交叉插入改写要求实现

    改写要求:1:以指针为数据结构开辟存储空间 改写要求2:被插入字符串和插入字符串不等长,设计程序间隔插入 如被插入字符串长度为12,待插入字符串长度为5 则插入间隔为2 改写要求3:添加函数Inser ...

  7. C++程序设计实践指导1.13自然数集中找合数改写要求实现

    改写要求1:用单链表实现 改写要求2:析构函数中依次将链表结点删除 #include <cstdlib> #include <iostream> using namespace ...

  8. C++程序设计实践指导1.1删除序列中相同的数改写要求实现

    改写要求1:改写为以指针为数据结构 #include <iostream> #include <cstdlib> using namespace std; class ARP ...

  9. C++程序设计实践指导1.7超长数列中n个数排序改写要求实现

    改写要求1:将以上程序改写为适合超长整数 改写要求2:将以上程序改写为适合超长数列 改写要求3:将数列中指定位置m开始的n个结点重新按降序排序 改写要求4:输出指定位置m开始的n个结点的超长整数 #i ...

随机推荐

  1. (转) ROS NAMING AND NAMESPACES

    原文地址:http://nootrix.com/2013/08/ros-namespaces/   In this tutorial, we will be talking about ROS nam ...

  2. Android中对手机文件进行读写

    参考张泽华视频 (一)读写手机内存卡中的文件 对手机中的文件进行读写操作,或者新增一个文件时,可直接使用openFileOutput  /  openFileInput 得到文件的输出.输入流. Fi ...

  3. 学了一个封装的jquery插件,感觉还成

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. [Head First Python]4.读取文件datafile.txt, 去除两边空格, 存储到列表,从列表格式化(nester.py)后输出到文件man.out,other.out

    datafile.txt  #文件 Man: this is the right room for an argument. Other Man: I've told you once. Man: N ...

  5. keil C51 指针总结

    变量就是一种在程序执行过程中其值能不断变化的量.要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间.定义一个变量的格式如下: [存储种 ...

  6. 认识元数据和IL(中)<第四篇>

    书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件.程序集.托管模块,这些概念与元数据.IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了 ...

  7. awk 处理

    find . -type f | awk '{print $NF}' | grep pdf$ |grep -v preview | while read A; do ls -ltr $A| awk ' ...

  8. nc命令总结

    1.远程拷贝文件从server1拷贝文件到server2上.需要先在server2上,用nc激活监听,server2上运行: 引用 [root@hatest2 tmp]# nc -l 1234 > ...

  9. 回溯算法-C#语言解决八皇后问题的写法与优化

    结合问题说方案,首先先说问题: 八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 嗯,这个问题已经被使用各种语言解 ...

  10. 关于uitableView的Group模式滑动偏移问题

    问题: uitableView的group模式自带一个section的headerView,如果不调整,系统就会默认高度,在滑动时就会向下偏移一个单位的scetion高度,我们改变tableView的 ...