C++ 编程语言 String 类和链表实现 本文将详细讲解 C++ 编程语言中 String 类的实现和链表的应用。我们将从 String 类的定义开始,逐步介绍 String 类的成员函数和运算符重载,接着讨论链表的实现和节点类的定义。 String 类的定义 在 C++ 编程语言中,String 类是最基本的字符串类。下面是 String 类的定义: ```cpp class String { public: String(); String(const char* const); String(int x); String(const String &rs); int getlen() const { return len; } const char* getstr() const { return str; } char& operator[](int lenth); char operator[](int lenth) const; String& operator=(const String &rs); String operator+(const String &); void operator+=(const String &); friend ostream& operator<<(ostream& s, const String& a) { s << a.str; return s; } friend istream& operator>>(istream& i, const String& a) { i >> a.str; return i; } ~String(); private: int len; char *str; }; ``` 从上面的代码可以看出,String 类有多个构造函数,可以从字符数组、整数和另一个 String 对象中构建 String 对象。String 类还提供了获取字符串长度和字符串内容的成员函数,以及重载的数组下标运算符、赋值运算符和流插入运算符。 链表的实现 链表是一种常用的数据结构,可以用来实现各种数据结构,如栈、队列、树等。下面是链表的实现: ```cpp class Node { public: Node() {} virtual ~Node() {} virtual Node* insert(Data* one) = 0; virtual void print() = 0; }; class InterNode : public Node { public: InterNode(Data* one, Node* next); virtual ~InterNode() { delete thisdata; delete Next; } virtual Node* insert(Data* one); virtual void print() { thisdata->getdata(); Next->print(); } private: Data* thisdata; Node* Next; }; class TailNode : public Node { public: TailNode() {} virtual ~TailNode() {} virtual Node* insert(Data* one); virtual void print() {} }; ``` 从上面的代码可以看出,链表由 Node 类和 InterNode 类组成。Node 类是抽象基类,提供了插入和打印操作的接口。InterNode 类是 Node 类的派生类,提供了插入和打印操作的实现。TailNode 类也是 Node 类的派生类,但它没有提供插入和打印操作的实现。 链表的应用 链表可以用来实现各种数据结构,如栈、队列、树等。在本文中,我们使用链表实现了一个简单的数据结构,即链表式数据结构。链表式数据结构可以用来存储大量数据,并且可以快速地插入和删除数据。 總之,本文详细讲解了 C++ 编程语言中 String 类的实现和链表的应用。我们首先介绍了 String 类的定义,然后讨论了链表的实现和节点类的定义。最后,我们讨论了链表的应用,包括链表式数据结构的实现。
using namespace std;
enum{small,same,larger};
class Data
{
public:
Data(int i):data(i){}
void getdata(){cout<<data<<endl;}
int compare(Data*);
private:
int data;
};
int Data::compare(Data*two)
{
if(data<two->data)
return larger;
if(data<two->data)
return small;
else
return same;
}
class Node
{
public:
Node(){}
virtual ~Node(){}
virtual Node* insert(Data*)=0;
virtual void print()=0;
};
class InterNode:public Node
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展