当前位置: 首页 > news >正文

北京网站设计公司兴田德润放心优质外链

北京网站设计公司兴田德润放心,优质外链,沧州网站建设公司翼马,计算机网络是干什么的目录 一、串的基本概述 二、串的存储结构 2.1定义属性存储结构 串长有两种表示方法: 1、用一个额外的变量length来存放串的长度; 2、串值后面加一个不计入串长的结束标记字符“\0”,此时的串长为隐含值。 2.2堆的顺序存储结构 三、串的基本操…

目录

一、串的基本概述

二、串的存储结构

2.1定义属性存储结构

串长有两种表示方法: 

1、用一个额外的变量length来存放串的长度;

2、串值后面加一个不计入串长的结束标记字符“\0”,此时的串长为隐含值。 

2.2堆的顺序存储结构  

三、串的基本操作 

3.1在模式串中pos位置查找长度为len的子串

 3.2直接返回模式串的长度

 3.3比较两个字符串之间的大小长短

 3.4朴素模式匹配算法

原文 


一、串的基本概述

  • 串是由零个或多个字符组成的有限序列;
  • 串中任意个连续的字符组成的子序列称为该串的子串,包含子串的串相应地称为主串;
  • 子串在主串中的位置以子串的第一个字符在主串中的位置来表示;
  • 当两个串的长度相等且每个对应位置的字符都相等时,称这两个串是相等的;
  • 一个或多个空格(空格是特殊字符)组成的串称为空格串,其长度为串中空格字符的个数。


二、串的存储结构


存储结构:顺序存储与链式存储。考虑到存储效率和算法的方便性,串多采用顺序存储结构。

类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。在串的定长顺序存储结构中,为每个串变量分配一个固定长度的存储区,即定长数组。

2.1定义属性存储结构

串长有两种表示方法: 
1、用一个额外的变量length来存放串的长度;
2、串值后面加一个不计入串长的结束标记字符“\0”,此时的串长为隐含值。 

我们这里采用方法1

​#define MAX_SIZE 25  //预定义最大串长为255
typedef struct{char ch[MAX_SIZE];   //每个分盘存储一个字符int length;         //串的实际长度
}SString;

2.2堆的顺序存储结构  

// 堆的顺序存储结构
struct HString{char *ch;     //按串长分配存储区,ch指向串的基地址int length;   //串的长度
} ;

三、串的基本操作 

3.1在模式串中pos位置查找长度为len的子串

//求子串
bool SubString(SString& Sub, SString S, int pos, int len) {if (pos + len - 1 < S.length) {return false;}for (int i = pos; i < pos + len; i++) {Sub.date[i] = S.date[i];}Sub.length = len;
}

 3.2直接返回模式串的长度

//求字符串长度
int length(SString S) {return S.length;
}

 3.3比较两个字符串之间的大小长短

//比较操作
bool compare(SString a,SString b) {for (int i = 0; i < a.length & i < b.length; i++) {if (a.date[i] != b.date[i]) {return a.date[i] - b.date[i];}}return a.length - b.length;
}

 3.4朴素模式匹配算法

//定位操作
int index(SString a, SString b) {SString Sub;int i = 1;int n = length(a), m =length(b);while (i <= n - m + 1) {SubString(Sub, a, i, m);if (compare(Sub, b) == 0)return i;}return 0;
}

原文 

#include<bits/stdc++.h>
using namespace std;
#define MAX_SIZE  23
struct SString {char date[MAX_SIZE];int length;
};
//求子串
bool SubString(SString& Sub, SString S, int pos, int len) {if (pos + len - 1 < S.length) {return false;}for (int i = pos; i < pos + len; i++) {Sub.date[i] = S.date[i];}Sub.length = len;
}
//比较操作
bool compare(SString a,SString b) {for (int i = 0; i < a.length & i < b.length; i++) {if (a.date[i] != b.date[i]) {return a.date[i] - b.date[i];}}return a.length - b.length;
}
//求字符串长度
int length(SString S) {return S.length;
}
//定位操作
int index(SString a, SString b) {SString Sub;int i = 1;int n = length(a), m =length(b);while (i <= n - m + 1) {SubString(Sub, a, i, m);if (compare(Sub, b) == 0)return i;}return 0;
}
//在主串里面查找模式串
int index2(SString a, SString b) {int i, j = 1;while (i <= length(a) && j <= length(b)) {if (a.date[i] == b.date[j]) {i++;j++;}else {i = i - j + 2;j = 1;}}if (j > length(b))return i-length(b);else return 0;
}

http://www.yayakq.cn/news/421232/

相关文章:

  • 网站建设实训报告心得微网站开发工具
  • 印刷设计营销网站网页设计有什么要求
  • 郑州网站建设流程百度推广电话销售好做吗
  • 宝塔设置加速wordpress站点电商网络营销
  • 网站选服务器文件永久ae88tv人口
  • 网站建设推广seo手机ps在线图片编辑
  • 公司网站建设做分录网站建设与管理题
  • 网站项目功能需求清单福州市市政建设开发有限公司网站
  • 虚拟主机安装网站做网站用什么浏览器好
  • 建设学校网站的作用山西省网站备案要多久
  • 建设银行网站总是崩溃制作动画的软件app
  • 网站后台模板怎样使用站内搜索本网站怎么做
  • 国家建设 免费论文期刊网站如何制作百度网站地图
  • 廊坊企业网站团队同一个阿里云可以做两个网站吗
  • 网站管理公司进贤南昌网站建设公司
  • 哈尔滨制作手机网站网站建设内容与结构
  • 网站里的专题页面社区网站如何做
  • 网站域名hkwordpress模版侵权
  • 域名dns解析和网站建设费县网站建设
  • 郑州家居网站建设服务公司在线简历模板
  • 威海哪家做网站好网站建设需要用什么书
  • 网站图片文字排版错误鞍山做网站公司
  • 名校建设网站百度 手机网站 收录
  • 郑州网站建设企起网站宣传平台
  • 做网站1200博物馆网站做的好的
  • google网站建设代理有没有做高仿的网站
  • 葫芦岛市营商环境建设管理局网站招远市建设局网站
  • 手机网站开发步骤软件外包平台的服务商
  • 旅游网站规划设计方案沈阳建设工程信息网浑南新区
  • 国际域名的外贸网站如何做一个网页设计方案