题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <cstddef>
#include <memory>
#include <iostream>
using namespace std;
class linkedItem {
private:
int data;
linkedItem* Next;
public:
linkedItem(int data) {
this->data = data;
this->Next = nullptr;
};
linkedItem* getNextPtr() {
return this->Next;
};
void setNextPtr(linkedItem* ptr){
this->Next=ptr;
};
int getData(){
return this->data;
}
};
class linkedList {
private:
linkedItem* head;
linkedItem* cursor;
public:
linkedList(int length) {
this->head = new linkedItem(length);
this->cursor = this->head;
};
bool addItem(int data,linkedItem* ptr) {
if(ptr==nullptr){
return false;
}
linkedItem* temp = new linkedItem(data);
if(ptr->getNextPtr()==nullptr){
temp->setNextPtr(nullptr);
ptr->setNextPtr(temp);
return true;
}
temp->setNextPtr(ptr->getNextPtr());
ptr->setNextPtr(temp);
return true;
};
linkedItem* getIndex(const int & data){
this->cursor=this->head;
while(this->cursor->getNextPtr()!=nullptr&&this->cursor->getNextPtr()->getData()<data){
this->cursor=this->cursor->getNextPtr();
}
if(this->cursor->getNextPtr()!=nullptr&&this->cursor->getNextPtr()->getData()==data){
return nullptr;
}
return this->cursor;
};
void loop(){
this->cursor=this->head->getNextPtr();
while(this->cursor!=nullptr){
cout<<this->cursor->getData()<<endl;
this->cursor=this->cursor->getNextPtr();
}
}
};
int main() {
int loop,data;
cin>>loop;
linkedList list(loop);
for(int i=0;i<loop;i++){
cin>>data;
if(list.addItem(data,list.getIndex(data))){
//recording the amount of loop
}
}
list.loop();
}
// 64 位输出请用 printf("%lld")
