从一个文本文件中读入整数构成一个链表,然后对链表进行排序,最后把排序后的链表输出到另外一个文件中。
题目内容从一个文本文件(input.txt)中读入一系列的整数构成一个链表,然后对链表进行排序,最后把排序后的链表输出到另外一个文件中(output.txt)。输入格式文...
题目内容
从一个文本文件(input.txt)中读入一系列的整数构成一个链表,然后对链表进行排序,最后把排序后的链表输出到另外一个文件中(output.txt)。
输入格式
文本文件input.txt
内容是空格间隔的整数序列,比如: 5 2 3 4 1
输出格式
文本文件output.txt,
内容是排好序的数字序列(空格间隔)
输入样例:input.txt文本文件,内容是 5 2 3 4 1 7
输出样例:output.txt文本文件,内容是 1 2 3 4 5 7
用C++语言编写,谢谢大神了,如果在这不好给出答案可以私信我噢~~~ 展开
从一个文本文件(input.txt)中读入一系列的整数构成一个链表,然后对链表进行排序,最后把排序后的链表输出到另外一个文件中(output.txt)。
输入格式
文本文件input.txt
内容是空格间隔的整数序列,比如: 5 2 3 4 1
输出格式
文本文件output.txt,
内容是排好序的数字序列(空格间隔)
输入样例:input.txt文本文件,内容是 5 2 3 4 1 7
输出样例:output.txt文本文件,内容是 1 2 3 4 5 7
用C++语言编写,谢谢大神了,如果在这不好给出答案可以私信我噢~~~ 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
1个回答
展开全部
#include<iostream>
#include<fstream>
using namespace std;
struct Node{
int data;
Node *next;
};
Node *head=0;
void createList(){
ifstream fin("input.txt");
Node *p,*q=head;
int x;
fin >>x;
while(!fin.eof()){
p=new Node;
p->data=x;
p->next=0;
if(!q)
head=p;
else
q->next=p;
q=p;
fin >>x;
}
fin.close();
}
void displayList(){
Node *p=head;
while(p){
cout <<p->data <<" ";
p=p->next;
}
cout <<endl;
}
void sortList(){
if(head==0 || head->next==0)
return;
Node *p,*q,*t;
int k;
p=head->next;
head->next=0;
while(p){
if(head->data>p->data){//插在链表首部
t=p;
p=p->next;
t->next=head;
head=t;
}else{ //插在链表中某处
k=p->data;
q=t=head;
while(q && q->data<k){
t=q;
q=q->next;
}
q=p;
p=p->next;
q->next=t->next;
t->next=q;
}
}
}
void saveList(){
Node *p=head;
ofstream fout("output.txt");
while(p){
fout <<p->data <<" ";
p=p->next;
}
fout <<endl;
fout.close();
}
void main(){
createList();
displayList();
sortList();
displayList();
saveList();
}
#include<fstream>
using namespace std;
struct Node{
int data;
Node *next;
};
Node *head=0;
void createList(){
ifstream fin("input.txt");
Node *p,*q=head;
int x;
fin >>x;
while(!fin.eof()){
p=new Node;
p->data=x;
p->next=0;
if(!q)
head=p;
else
q->next=p;
q=p;
fin >>x;
}
fin.close();
}
void displayList(){
Node *p=head;
while(p){
cout <<p->data <<" ";
p=p->next;
}
cout <<endl;
}
void sortList(){
if(head==0 || head->next==0)
return;
Node *p,*q,*t;
int k;
p=head->next;
head->next=0;
while(p){
if(head->data>p->data){//插在链表首部
t=p;
p=p->next;
t->next=head;
head=t;
}else{ //插在链表中某处
k=p->data;
q=t=head;
while(q && q->data<k){
t=q;
q=q->next;
}
q=p;
p=p->next;
q->next=t->next;
t->next=q;
}
}
}
void saveList(){
Node *p=head;
ofstream fout("output.txt");
while(p){
fout <<p->data <<" ";
p=p->next;
}
fout <<endl;
fout.close();
}
void main(){
createList();
displayList();
sortList();
displayList();
saveList();
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询