找出倒数第k个元素(或中间元素)

#include<iostream>
#include
<list>

using namespace std;

const int LIST_LENGTH=100;

typedef list
<int> LI;
typedef list
<int>::const_iterator LI_C_IT;//指向常量的指针

//找出倒数第k个元素(或中间元素)
int GetElement(const LI& head,int k){
    
if(k<1 || k>LIST_LENGTH)
        
return 0;
    LI_C_IT itA,itB;
    itA
=itB=head.begin();
    
for(int i=0;i<k;i++)
        itB
++;
    
while(itB != head.end()){
        itA
++;
        itB
++;
    }

    
return *itA;
}


int main()
{
    LI head;
    
//创建链表1->2->->100
    for(int i=1;i<=LIST_LENGTH;i++)
        head.push_back(i);
    
int k;
    
while(cin>>k){//当输入非整数时,如a,b,c就会结束while
        int elem=GetElement(head,k);
        
if(elem==0)
            cout
<<"无效的测试数据"<<endl;
        
else
            cout
<<"倒数第"<<k<<"个元素是"<<elem<<endl;
    }

    
return 0;
}

posted on 2011-06-08 09:56 Hsssssss 阅读(104) 评论(0)  编辑 收藏 引用 所属分类: C++代码


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿

文章分类

文章档案

收藏夹

搜索

最新评论