求链表倒数第四个元素

本文介绍了一个使用C++实现的程序,该程序能够找出单向链表中的倒数第四个元素。通过定义一个特殊的环形类`ring`来保存最近四个节点的数据,并随着链表迭代更新这些值。最终输出倒数第四个元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:单向链表的倒数第四个元素

程序:

#include<iostream>

#include<list>

#include<vector>

using namespace std;

 

class ite{

int p;

public:

int operator++();

ite& operator=(int a){p=a;return *this;}

int& v(){return p;}

int minus4();

};

 

class ring{

vector<int> store;

ite pointer;

public:

ring();

bool full(){return (store[0]&&store[1]&&store[2]&&store[3]);}

void add(int a){this->operator[](pointer)=a;++pointer;}

int last4(){pointer.minus4();return this->operator[](pointer);}

int& operator[](ite i){return i.v();}

};

 

int ite::operator++(){

if(p==3)return p=0;

return ++p;

}

int ite::minus4(){

if(p==3)return p=0;

return ++p;

}

 

ring::ring(){

for(int i=0;i<4;++i)store.push_back(0);

pointer=0;

}

 

int main(){

list<int> li;

int temp;

while(cin>>temp)li.push_back(temp);

ring ri;

for(list<int>::iterator i=li.begin();i!=li.end();++i){

ri.add(*i);

}

cout<<ri.last4();

char pause;

cin>>pause;

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值