データ構造—シリアル(C/C++版)

1492 ワード

本文はCSDNブロガーcoder_gxdオリジナル
転載は以下のことを明記してください.https://blog.csdn.net/coder_gxd/article/details/79854201
 
本文はデータ構造の中で列の常用アルゴリズム(C/C++版)を紹介して、各位の学友の討論の指摘を歓迎します
#include //  malloc(),free()      
#define maxsize 100     

//           
typedef struct {
	char str[maxsize+1];//maxsize        ,maxsize+1     '\0';
	int length; //   
}Str0;
//             ,            ; 
typedef struct {
	char *ch;//               ; 
	int length; //   
}Str; 

//      ,     O(ch.length) 
//                 ,    1,    0;
int strassign(Str &str,char *ch){//c          , c      str; 
	if(str.ch!=NULL){//  str   ,       ; 
		free(str.ch);
	} 
	int len=0;char *c=ch;
	while(*c){++len;++c;}//     ch  ;
	if(len==0){//     ch  ,       
		str.ch=NULL;
		str.length=0;
		return 1; 
	}
	else{//     ch   
		str.ch=(char *)malloc(sizeof(char)*(len+1));// len+1              '\0';
		if(str.ch==NULL){//      ,  0; 
			return 0;
		} 
		else{//       
			c=ch;
			for(int i=0;i<=len;i++,++c){//     ch        str; 
				str.ch[i]=*c;
			}
			str.length=len;//    ; 
			return 1;
		} 
	}
}

//     ,     O(min(s1.length,s2.length));
//        ,  s1>s2,    ; s1