程序博客网 > 用java调用weka j48
来源:互联网 发布:用java调用weka j48 编辑:程序博客网 时间:2024/04/30 06:28
////////////////////////////////////////////////////////////////////////////////// FileName: TCLinearList.cpp// Author: ErrorCpp@gmail.com Version: 0-1-0 Date: 2010-01-06// Description:// 风格约定:st表示结构、C表示类、T表示模版参数、TC表示带模版参数的类// ADT TCLinerList// {// DataObject:// 0或者多个元素的有序集合//// Operator:// Create(); // 创建一个空线性表// Destory(); // 删除表// IsEmpty(); // 表为空返回true,否则返回false// Length(); // 返回表的大小// Find(k, x); // 寻找表中的第K个元素,并把它保存到x中// Search(x); // 返回元素x在表中的位置;如果x不在表中返回0// Delete(k, x); // 删除表中第k个元素,并把它保持到x中;函数返回有修改后的表// Insert(k, x); // 把第k个元素之后插入x;函数返回修改后的线性表// Output(out); // 把线性表放入输入流out中// };////////////////////////////////////////////////////////////////////////////////#include <iostream>using namespace std;template<typename T>class TCLinearList{public:TCLinearList();virtual ~TCLinearList();// 需要特殊对待的拷贝构造函数和"="操作符// 禁止使用private:TCLinearList(const TCLinearList& oldList);virtual void operator = (const TCLinearList& oldList);// public operatorspublic:bool IsEmpty() const;int Length() const;bool Find(const int iIndex, T& TBufReturn) const;int Search(const T& element) const;TCLinearList<T>& Delete(const int iIndex, T& bufReturn); TCLinearList<T>& Insert(const int iIndex, const T& bufReturn);void Output(ostream& out) const;private:void InitDataMembers();void InitDataMembers(const TCLinearList& oldList);void ReleaseDataMembers();private:int m_iLength;int m_iMaxSize;T * m_ppElements;};template<typename T>TCLinearList<T>::TCLinearList() {InitDataMembers();}template<typename T>TCLinearList<T>::TCLinearList(const TCLinearList& oldList) {InitDataMembers(oldList);}template<typename T>TCLinearList<T>::~TCLinearList(){}template<typename T>void TCLinearList<T>::InitDataMembers(){ m_iMaxSize = 10;m_iLength = 0;m_ppElements = NULL;}template<typename T>void TCLinearList<T>::InitDataMembers(const TCLinearList& oldList){ m_iMaxSize = oldList.m_iMaxSize;m_iLength = oldList.m_iLength;if(NULL != oldList.m_ppElements){m_ppElements = new T[m_iMaxSize];*m_ppElements = *oldList.m_ppElements;}else{m_ppElements = oldList.m_ppElements;}}template<typename T>void TCLinearList<T>::ReleaseDataMembers(){if(NULL != m_ppElements){delete []m_ppElements;m_ppElements = NULL;}InitDataMembers();}template<typename T>void TCLinearList<T>::operator = (const TCLinearList& oldList){ReleaseDataMembers();InitDataMembers(oldList);}template<typename T>bool TCLinearList<T>::Find(int iIndex, T& bufReturn) const {bool bReturn = true;if((iIndex < 0) || (iIndex > m_iLength)){bReturn = false;}else{bufReturn = m_ppElements[iIndex - 1];}return bReturn;}template<typename T>int TCLinearList<T>::Search(const T& element) const{int iReturn = 0;for(int i = 0; i < m_iLength; i++){if(m_ppElements[i] == element){iReturn = i + 1;}}return iReturn;}template<typename T>TCLinearList<T>& TCLinearList<T>::Delete(int iIndex, T& bufReturn){if(Find(iIndex, bufReturn)){for(int i = iIndex; i < m_iLength; i++){m_ppElements[i-1] = m_ppElements[i];}m_iLength = m_iLength - 1;return *this;}}template <typename T>TCLinearList<T>& TCLinearList<T>::Insert(int iIndex, const T& element){if((iIndex < 0) || (iIndex > m_iLength) || (++m_iLength == m_iMaxSize)){;}else{// 把第i号位置腾出来,对应数组的下标i-1 for(int i = iIndex; i <= m_iLength; i++){m_ppElements[i] = m_ppElements[i-1];}m_ppElements[i-1] = element;return *this;}}template<class T>void TCLinearList<T>::Output(ostream& out) const{for(int i = 0; i < m_iLength; i++){out << m_iElements[i] << " ";}}int main(){return 0;}