1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 串的顺序存储结构c语言版 数据结构C语言版串的定长顺序存储表示和实现.doc

串的顺序存储结构c语言版 数据结构C语言版串的定长顺序存储表示和实现.doc

时间:2021-09-11 05:22:07

相关推荐

串的顺序存储结构c语言版 数据结构C语言版串的定长顺序存储表示和实现.doc

.

.

#include

#include

#include

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

#define OVERFLOW -2

#define MAXSTRLEN 255

typedef int ElemType;

typedef int Status;

typedef unsigned char SString[MAXSTRLEN+1];

//串赋值操作

Status StrAssign(SString T,char chars[]){

// 生成一个其值等于chars的串T

int i;

if(strlen(chars)>MAXSTRLEN)

return ERROR;

T[0]=strlen(chars);

for(i=0;i<=T[0];i++){

T[i+1]=chars[i];}

return OK;

}//StrAssign

//输出串

void StrPrint(SString S){

int i;

for(i=1;i<=S[0];i++){

printf("%c",S[i]);

}

printf("\n");

}//PrnStr

//串复制操作

Status StrCopy(SString T,SString S){

// 由串S复制得串T

int i;

for(i=1;i<=S[0];i++)

T[i]=S[i];

T[0]=S[0];

return OK;

}//StrCopy

//判空操作

Status StrEmpty(SString S){

if(S[0]==0)

return OK;

else

return ERROR;

}//StrEmpty

//串比较操作

int StrCompare(SString S,SString T){

int i;

for(i=1;i<=S[0]&&i<=T[0];++i)

if(S[i]!=T[i])

return S[i]-T[i];

return S[0]-T[0];

}//StrCompare

//求长度操作

int StrLength(SString S){

return S[0];

}//StrLength

//串连接操作

Status Concat(SString T,SString S1,SString S2){

int i;

Status uncut;

if(S1[0]+S2[0]<=MAXSTRLEN){

for(i=1;i<=S1[0];i++){

T[i]=S1[i];}

for(i=1;i<=S2[0];i++){

T[S1[0]+i]=S2[i];}

T[0]=S1[0]+S2[0];

uncut=TRUE;

}

else if(S1[0]

for(i=1;i<=S1[0];i++){

T[i]=S1[i];}

for(i=1;i<=MAXSTRLEN-S1[0];i++){

T[S1[0]+i]=S2[i];}

T[0]=MAXSTRLEN;

uncut=FALSE;

}

else{

for(i=0;i<=MAXSTRLEN;i++){

T[i]=S1[i];}

uncut=FALSE;

}

return uncut;

}//Concat

//取子串操作

Status SubString(SString Sub,SString S,int pos,int len){

int i;

if(pos<1||pos>S[0]||len<0||len>S[0]-pos+1)

return ERROR;

for(i=1;i<=len;i++){

Sub[i]=S[pos+i-1];}

Sub[0]=len;

return OK;

}//SubString

//求子串位置操作

int Index(SString S,SString T,int pos){

int i,j;

i=pos;

j=1;

while(i<=S[0]&&j<=T[0]){

if(S[i]==T[j]) {

++i;

++j;

}

else{// 指针后退重新开

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。