该文章主要介绍串的链式存储结构以及相关运算。
头文件:LinkString.h
#ifndef LINKSTRING_H_
#define LINKSTRING_H_
#include <iostream>
struct LinkNode //链串结点类型
{
char data; //存放一个字符
LinkNode *next; //指向下一个结点
};
class LinkStringClass //链串类
{
LinkNode *head; //链串头结点指针
public:
//====================链串的基本运算算法=================
LinkStringClass(); //构造函数
~LinkStringClass(); //析构函数
LinkStringClass &operator=(char *cstr); //重载赋值运算符
LinkStringClass &operator=(LinkStringClass &t); //重载赋值运算符
int StrLength(); //求串长度
LinkStringClass &operator+(LinkStringClass &t); //串连接
LinkStringClass &SubStr(int i, int j); //求子串
LinkStringClass &InsStr(int i, LinkStringClass &s); //串插入
LinkStringClass &DelStr(int i, int j); //串删除
LinkStringClass &RepStr(int i, int j, LinkStringClass &s);//串替换
void DispStr(); //串输出
//===================链串的其他运算算法===================
friend bool StrEqueal(LinkStringClass &s, LinkStringClass &t);//比较两个串是否相等
friend bool Repl(LinkStringClass &s);//把一个串中最先出现“ab”改为“xyz”
//===================链串的子串匹配运算算法===============
friend int Index1(LinkStringClass &s, LinkStringClass &t);//BF算法(暴力匹配)
};
#endif
源文件:LinkString.cpp