// 大数阶乘.cpp
#include "stdafx.h"
#include<iostream>
using namespace std;
class ChainNode
{
friend class Chain;
private:
int data;
ChainNode* link;
};
class Chain
{
public:
Chain(){first = 0;}
~Chain();
bool IsEmpty() const {return first == 0;}
int Length() const;
bool Find(int k, int& x);
int Search(const int& x) const;
Chain& Change(int k, int x);
Chain& Delete(int k, int& x);
Chain& Insert(int k, const int& x);
void OutputOne(const ChainNode* current);
void Output();
private:
ChainNode* first;
};
Chain::~Chain()
{
ChainNode * next;
while(first)
{
next = first->link;
delete first;
first = next;
}
}
int Chain::Length() const
{
ChainNode* current = first;
int len = 0;
while(current)
{
len++;
current = current->link;
}
return len;
}
bool Chain::Find(int k,int& x)
{
ChainNode* current = first;
int index = 0;
while(index < k && current )