Автор вопроса
есть код программы. нужно выполнить оптимизировать РОР. как сделать? обращение идет один раз. соотвественно можно сократить время на выполнение но не знаю как. (в конце программы указано)
вот собственно:
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
struct elem{
int inf;
struct elem *link;
} *top=NULL;
void Push(int val){
struct elem *p=new elem;
p->inf=val;
p->link=top;
top=p;
}
int Pop(){
struct elem *p;
int temp;
temp=top->inf;
p=top;
top=p->link;
delete p;
return temp;
}
void Print(){
struct elem *tmp;
tmp=top;
while(tmp!=NULL){
printf("Value=%d\n",tmp->inf);
tmp=tmp->link;
}
}
void Swop(){
struct elem *tmp;
tmp=top;
int tempval=0;
while(tmp!=NULL){
if(tmp->link==NULL){
tempval=tmp->inf;
tmp->inf=top->inf;
top->inf=tempval;
}
tmp=tmp->link;
}
}
int main(int argc, char** argv) {
int i=0;
for(i=0;i<5;i++)Push(i);
printf("ishodny spisok:\n");
Print();
for(int j=i;j<i+2;j++)Push(j);
printf("dabavili 2 elementa:\n");
Print();
printf("menayem perviy i posledniy mestami:\n");
Swop();
Print();
printf("udalyaem 3 pervih elementa:\n");
for(i=0;i<3;i++)Pop(); //нужно оптимизироватьPOP как?
Print();
return 0;
}
вот собственно:
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
struct elem{
int inf;
struct elem *link;
} *top=NULL;
void Push(int val){
struct elem *p=new elem;
p->inf=val;
p->link=top;
top=p;
}
int Pop(){
struct elem *p;
int temp;
temp=top->inf;
p=top;
top=p->link;
delete p;
return temp;
}
void Print(){
struct elem *tmp;
tmp=top;
while(tmp!=NULL){
printf("Value=%d\n",tmp->inf);
tmp=tmp->link;
}
}
void Swop(){
struct elem *tmp;
tmp=top;
int tempval=0;
while(tmp!=NULL){
if(tmp->link==NULL){
tempval=tmp->inf;
tmp->inf=top->inf;
top->inf=tempval;
}
tmp=tmp->link;
}
}
int main(int argc, char** argv) {
int i=0;
for(i=0;i<5;i++)Push(i);
printf("ishodny spisok:\n");
Print();
for(int j=i;j<i+2;j++)Push(j);
printf("dabavili 2 elementa:\n");
Print();
printf("menayem perviy i posledniy mestami:\n");
Swop();
Print();
printf("udalyaem 3 pervih elementa:\n");
for(i=0;i<3;i++)Pop(); //нужно оптимизироватьPOP как?
Print();
return 0;
}