数据结构论坛

首页 » 分类 » 定义 » 带你认识数据结构串的存储结构
TUhjnbcbe - 2024/10/11 16:16:00
治疗白癜风医院 http://baidianfeng.39.net/index.html
#数据#

在本篇文章中作者将介绍串的存储结构以及与其相关的代码。

在文章中我们了解了串也是一种特殊的线性表,所以它的存储结构也与线性表相同,分为了顺序存储与链式存储。

串的顺序存储的代码实现其实与顺序表是很类似的,只是将结构体中数组的类型定义为了char类型(因为串中的数据元素必须是字符型)。

接下来我们就来看看如何用代码实现串的存储:

一,顺序存储:

1,定长:

typedefstruct{

  chardata[Maxsize];//使用了数组,长度不可改变

  intlength;

}SString;

2,堆分配:

typedefstruct{

  char*ch;

  intlength;

}HString;

HStringS;

S.ch=(char*)malloc(MAX*sizeof(char));

S.length=0;

二,链式存储:

#includestdio.h

#includemalloc.h

#includestdlib.h

#includestring.h

#defineMaxsize

typedefstructStringNode{

  charch[10];//每个结点存储多个字符,以节省空间

  structStringNode*next;

}StringNode,*String;

三,基本操作(求子串):

boolsub(SStringSub,SStringS,intpos,intlen){

  if(pos+len-1S.length){

    returnfalse;

    //TODO

  }

  for(inti=pos;ipos+len;i++){

    Sub.data[i-pos+1]=S.data;

  }

    Sub.length=len;

  returntrue;

    //TODO

}

本篇文章到此就结束了,欢迎大家

1
查看完整版本: 带你认识数据结构串的存储结构