资源简介
DT数据结构代码 DTlib.
代码片段和文件信息
#include
#include
#include “DTString.h“
#include “Exception.h“
using namespace std;
namespace DTlib
{
int* String::make_pmt(const char* p)
{
int len = strlen(p);
int* ret = static_cast(malloc(sizeof(int) * len));
if( ret != NULL )
{
int ll = 0;
ret[0] = 0;
for(int i = 1; i < len; i++)
{
while( (ll>0) && (p[ll] != p[i]) )
{
ll = ret[ll - 1];
}
if( p[ll] == p[i] )
{
ll++;
}
ret[i] = ll;
}
}
return ret;
}
int String::kmp(const char* s const char* p)
{
int ret = -1;
int s1 = strlen(s);
int p1 = strlen(p);
int* pmt = make_pmt(p);
if((pmt != NULL) && (0 < p1) && (p1 <= s1))
{
for(int i=0 j=0; i {
while((j > 0) && (s[i] != p[j]))
{
j = pmt[j-1];
}
if(s[i] == p[j])
{
j++;
}
if(j == p1)
{
ret = i + 1 - p1;
break;
}
}
}
free(pmt);
return ret;
}
void String::init(const char* s)
{
m_str = strdup(s);//m_str指向堆空间拷贝字符串
if( m_str )
{
m_length = strlen(m_str);
}
else
{
THROW_EXCEPTION(NoEnoughMemoryException “No memory to create String object...“);
}
}
String::String()
{
init(““);
}
String::String(char c)
{
char s[] = {c ‘\0‘};
init(s);
}
String::String(const char* s)
{
init(s ? s : ““);
}
String::String(const String& s)
{
init(s.m_str);
}
int String::length() const
{
return m_length;
}
const char* String::str() const
{
return m_str;
}
bool String::equal(const char* l const char* r int len) const
{
bool ret = true;
for(int i = 0; i < len && ret; i++)
{
ret = ret && (l[i] == r[i]);
}
return ret;
}
bool String::startWith(const char* s) const
{
bool ret = (s != NULL);
if( ret )
{
int len = strlen(s);
ret = (len < m_length) && equal(m_str s len);
}
return ret;
}
bool String::startWith(const String& s) const
{
return startWith(s.m_str);
}
bool String::endOf(const char* s) const
{
bool ret = (s != NULL);
if( ret )
{
int len = strlen(s);
char* str = m_str + (m_length - len);
ret = (len < m_length) && equal(str s len);
}
return ret;
}
bool String::endOf(const String& s) const
{
return endOf(s.m_str);
}
String& String::insert(int i const char* s)
{
if((0 <= i) && (i <= m_length))
{
if((s != NULL) && (s[0] != ‘\0‘))
{
int len = strlen(s);
char* str = reinterpret_cast(malloc(m_length + len +1));
if(str != NULL)
{
strncpy(str m_str i);
strncpy(str + i s len);
strncpy(str + i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1495 2019-08-04 19:12 DTlib\Array.h
文件 14846 2019-08-05 10:08 DTlib\BTree.h
文件 540 2019-08-05 07:14 DTlib\BTreeNode.h
文件 3244 2019-08-03 19:27 DTlib\CircleList.h
文件 64368 2019-08-05 22:26 DTlib\DTlib
文件 752 2019-08-05 13:46 DTlib\DTlib.pro
文件 23742 2019-12-26 08:59 DTlib\DTlib.pro.user
文件 18452 2019-08-05 22:59 DTlib\DTlib.pro.user.2.5pre1
文件 8835 2019-08-04 05:15 DTlib\DTString.cpp
文件 2318 2019-08-04 05:07 DTlib\DTString.h
文件 4838 2019-08-03 21:30 DTlib\DualCircleList.h
文件 5507 2019-08-03 20:48 DTlib\Dualli
文件 2199 2019-07-29 22:12 DTlib\DynamicArray.h
文件 1976 2019-07-29 19:52 DTlib\DynamicList.h
文件 2869 2019-08-03 15:37 DTlib\Exception.cpp
文件 4604 2019-12-25 17:16 DTlib\Exception.h
文件 4604 2019-12-26 09:19 DTlib\Exception.h.autosave
文件 14114 2019-08-05 22:24 DTlib\Graph.h
文件 7845 2019-08-05 02:57 DTlib\GTree.h
文件 578 2019-08-05 03:01 DTlib\GTreeNode.h
文件 4962 2019-08-03 20:48 DTlib\li
文件 1610 2019-08-03 23:56 DTlib\li
文件 897 2019-08-03 22:44 DTlib\li
文件 23350 2018-12-03 00:10 DTlib\LinuxList.h
文件 877 2019-08-03 11:24 DTlib\List.h
文件 7525 2019-08-05 17:15 DTlib\ListGraph.h
文件 543 2019-12-25 17:27 DTlib\main.cpp
文件 7038 2019-08-05 13:54 DTlib\Makefile
文件 6327 2019-08-05 17:15 DTlib\MatrixGraph.h
文件 567 2019-08-03 22:08 DTlib\ob
............此处省略19个文件信息
- 上一篇:未来教育全套考试免激活.txt
- 下一篇:QT项目code.rar
相关资源
- QT项目code.rar
- [MIT][计算机科学及编程导论][6.00][课程
- 模拟进程调度代码解释文档.pdf
- anays workbench 高斯热源代码
- 数据结构动画演示
- 大数据挖掘算法代码
- 改进鸟群算法源码(1).rar
- C51蜂鸣器播放两只老虎和小星星代码
- 课程设计题七:交通灯控制器.zip
- AMap.Geocoder高德地图逆向地理编码JS代
- 计网rdt实验sim模拟器
- proteus微机原理小程序;洗衣机控制器
- DTLZ1、DTLZ2、DTLZ3、DTLZ4、DTLZ5、DTLZ6、
- STM32智能家居项目源代码.7z
- AD9268代码配置,亲测可用
- 利用Qt实现的N皇后算法
- beatMouse.zip
- 东北大学数据结构实验1打印机fifo
- mma8451 stm32代码.rar.rar
- 栅格图层计算代码—平均.R
- sdram_model_plus 大小为256M 邓堪文sdram中
- CUDA by example 中文:GPU高性能编程CUD
- 模糊PID控制算法
- linux下QT游戏五子棋源代码
- TI的msp430f5529在12864液晶上通过四个按
- A星算法代码QT运行
- 动态生成DIY图片代码
- dsp开发中将flash中的代码搬到RAM中执行
- 拓扑排序------打印输出计算机本科专
- flash画图代码flash画图代码
评论
共有 条评论