数据结构C语言版 串的定长顺序存储表示和实现.doc
(6页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
14.90 积分
#include#include#include#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -2#define MAXSTRLEN 255typedef 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]S2\n"); else if(StrCompare(S1,S2)<0) printf("S1
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文