From fce29a01d9edea676b447431c750218dd4cdb64c Mon Sep 17 00:00:00 2001 From: Kim Yang Date: Sat, 8 Aug 2020 00:06:38 +0800 Subject: [PATCH] :sparkles: ADD DS_3_x_string --- DataStructure/DS_3_String/DS_3_0_SString.cpp | 59 +++++++++++++++++++- DataStructure/DS_3_String/DS_3_1_HString.cpp | 13 +++++ DataStructure/DS_3_String/DS_3_2_LString.cpp | 12 ++++ DataStructure/DS_3_String/DS_3_3_LString.cpp | 12 ++++ DataStructure/DS_3_String/Doc_3_0_串.md | 29 ---------- 5 files changed, 95 insertions(+), 30 deletions(-) create mode 100644 DataStructure/DS_3_String/DS_3_1_HString.cpp create mode 100644 DataStructure/DS_3_String/DS_3_2_LString.cpp create mode 100644 DataStructure/DS_3_String/DS_3_3_LString.cpp diff --git a/DataStructure/DS_3_String/DS_3_0_SString.cpp b/DataStructure/DS_3_String/DS_3_0_SString.cpp index bede901..ff09f58 100644 --- a/DataStructure/DS_3_String/DS_3_0_SString.cpp +++ b/DataStructure/DS_3_String/DS_3_0_SString.cpp @@ -2,6 +2,63 @@ // Created by kim yang on 2020/8/3. // +//顺序存储——静态数组实现方式(定长顺序存储),注意下面实现在数组中存放字符串时,都会舍弃,Str[0],第一个结点的空间,以保证字符下标和数组下标保证一致 #include -#define MAXLEN 255 + +#define MAXLEN 255 //预定义最大串长为255 + +typedef struct { + char ch[MAXLEN];//每个分量存储一个字符 + int length; //串的实际长度 +}SString; + +bool InitStr(){ + +} + +//求子串 +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.ch[i-pos+1]=S.ch[i]; + Sub.length=len; + return true; +} + +//比较操作,若S>T,则返回值>0;若S=T,则返回值=0;若S +#define MAXLEN 255 //预定义最大串长为255 + +typedef struct { + char *ch;//按串长分配存储区,ch指向串的基地址 + int length; //串的实际长度 +}HString; + diff --git a/DataStructure/DS_3_String/DS_3_2_LString.cpp b/DataStructure/DS_3_String/DS_3_2_LString.cpp new file mode 100644 index 0000000..60d2bee --- /dev/null +++ b/DataStructure/DS_3_String/DS_3_2_LString.cpp @@ -0,0 +1,12 @@ +// +// Created by kim yang on 2020/8/8. +// + +//链式存储 +#include + +typedef struct StringNode{ + char ch;//每个结点存1个字符,存储密度低,每个字符1B,每个指针4B + struct StringNode *next; +}StringNode,*String; + diff --git a/DataStructure/DS_3_String/DS_3_3_LString.cpp b/DataStructure/DS_3_String/DS_3_3_LString.cpp new file mode 100644 index 0000000..3198159 --- /dev/null +++ b/DataStructure/DS_3_String/DS_3_3_LString.cpp @@ -0,0 +1,12 @@ +// +// Created by kim yang on 2020/8/8. +// + +//链式存储 +#include + +typedef struct StringNode{ + char ch[4];//每个结点存多个个字符,存储密度提高,每个字符1B,每个指针4B + struct StringNode *next; +}StringNode,*String; + diff --git a/DataStructure/DS_3_String/Doc_3_0_串.md b/DataStructure/DS_3_String/Doc_3_0_串.md index b050542..c99c5ea 100644 --- a/DataStructure/DS_3_String/Doc_3_0_串.md +++ b/DataStructure/DS_3_String/Doc_3_0_串.md @@ -21,32 +21,3 @@ ![image-20200803214352811](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyhlhrevj31hu0u0kjo.jpg) ![image-20200803215953538](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyy8zrrwj31sq0u0qv5.jpg) - -## 存储结构 - -![image-20200803214458664](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyiq5awaj322e0l8dry.jpg) - -### 顺序存储与堆分配存储 - -![image-20200803214622356](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyk6ryhoj31es0u0b2a.jpg) - -![image-20200803215036742](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyolhjjlj31iy0u0x6p.jpg) - -方案二的字符串长度不可以超过255 - -### 块链存储 - -![image-20200803215219679](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyqdihtwj31fm0u0qv5.jpg) - -## 基本操作的实现 - -![image-20200803215331395](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyrmm1v8j31ha0u01ky.jpg) - -![image-20200803215415087](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdysdqx1ej31i20u0u0x.jpg) - -![image-20200803215555916](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyu4er0jj31if0u04qq.jpg) - -![image-20200803215846955](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyx38lc0j31h70u07wi.jpg) - -![image-20200803215910897](https://tva1.sinaimg.cn/large/007S8ZIlly1ghdyxi3ybbj31n90u0qv5.jpg) -