题解 | #明明的随机数#
明明的随机数
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")