剑指offer
2018-09-16 本文已影响0人
上行彩虹人
1.链表反转
#include<cstdio>
#include<list>
#include<stack>
using namespace std;
int main(){
list<int> l ;
int tem=0;
for(int i=0;i<5;i++){
scanf("%d",&tem);
l.push_back(tem);
}
stack<int> s;
list<int>:: iterator i;
for(i=l.begin();i!=l.end();i++){
s.push(*i);
}
while(!s.empty()){
int t = s.top();
printf("%d ",t);
s.pop();
}
return 0;
/*压栈处理
stack<int> s;
int tem;
for(int i =0;i<5;i++){
scanf("%d",&tem);
s.push(tem);
}
while(!s.empty()){
printf("%d ",s.top());
s.pop();
}*/
}
1、输出倒数第k个数
#include<cstdio>
#include<list>
using namespace std;
int main(){
list<int> l ;
l.push_back(1);
l.push_back(2);
l.push_back(3);
l.push_back(4);
int k = 0;
while(1){
scanf("%d",&k);
list<int>::iterator i;
list<int>::iterator j;
int index = 0;
i = l.begin();
for (;i!=l.end();i++){
index++;
if (index == k+1)
break;
}
j=l.begin();
while(i!=l.end()){
i++;
j++;
}
printf("%d\n",*j);
}
return 0;
}