数据结构—串的堆分配

#include<stdio.h>
#include<stdlib.h>
typedef struct
{	char *ch;
	int length;
}HString;
void StrAssign(HString &T,char *chars);
void StrLength(HString S);
void StrCompare(HString S,HString T);
void ClearString(HString &S);
void Concat(HString &T,HString S1,HString S2);
void SubString(HString S,int pos,int len);
void main()
{
}
void StrAssign(HString &T,char *chars)
{	if(T.ch)
		free(T.ch);
	for(i=0,c=chars;c;i++,c++);
	if(!i)
	{	T.ch=NULL;
		T.length=0;
	}
	else
	{	if(!(t.ch=(char *)malloc(i*sizeof(char))))
		{	printf("ERROR!\n");
			return;
		}
		for(j=i;j>=1;j--)
			T.ch[j-1]=chars[j-1];
		T.length=i;
	}
}
void StrLength(HString S)
{	printf("The length of String is:%d\n",S.length);
}
void StrCompare(HString S,HString T)
{	for(i=0;i<S.length&&i<T.length;i++)
		if(S.ch[i]!=T.ch[i])

}

数据结构—串的堆分配

时间: 2024-11-06 19:56:51

数据结构—串的堆分配的相关文章

数据结构-串的堆分配存储

串的堆分配存储表示的特点是,仍以一组地址连续的存储单元存放串值字符序列,但它们的存储空间是在程序执行过程中动态分配的.使用动态分配函数malloc()和函数free()来管理存储空间的大小. 串的堆分配存储方法具有顺序存储的特点,又弥补了定长存储的大小限制,多以多被采用. 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 typedef int Status; 6 #define O

C语言实现数据结构串(堆分配存储表示法)

-------------------------------------------- 堆分配存储表示法 -------------------------------------------- 存储结构: 构建堆来存储字符串,本质上是顺序表 -------------------------------------------- 实现代码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h>

串的堆分配存储表示与实现--自己写数据结构

本次实现的数据结构是关于串的表示与实现,首先讲串的堆分配存储表示与实现,后面的博客将贴出串的另外数据结构的表示和实现 heapstring.h文件存放数据结构体,如下 #ifndef _HEAPSRING_H_ #define _HEAPSRING_H_ typedef struct _HString { char *ch; int length; }HString,*pHString; pHString init_null_string(void); pHString init_heap_st

23、蛤蟆的数据结构笔记之二十三串的堆分配实现

23.蛤蟆的数据结构笔记之二十三串的堆分配实现 本篇名言:"人的价值是由自己决定的." 接下去是看下如何用C实现串. 欢迎转载,转载请标明出处: 1.  定义 定义结构体如下,一种字符数组,一个表示数组的长度.以一组地址连续的存储单元存放串值字符序列,但是他们的存储空间是在程序执行过程中动态分配而得. typedefstruct { charch[MAXLEN]; intlen; }SString; 2.  复制 将一个串内容复制到另一个结构体中区. SString StrCopy(S

串的堆分配存储结构

串的堆分配存储,其具体实现方式是采用动态数组存储字符串. 通常,编程语言会将程序占有的内存空间分成多个不同的区域,程序包含的数据会被分们别类并存储到对应的区域.拿C语言来说,程序会将内存分为4个区域,分别为堆区.栈区.数据区和代码区.其中的堆分配 与其他区域不同,堆区的内存空间需要程序员手动使用malloc函数申请,并且在不用后要手动通过free函数将其释放 代码: #include <stdio.h>#include <stdlib.h>#include <string.h

【数据结构】串的堆分配表示与实现

采用堆分配存储表示的串被称为堆串,与顺序串相比,地址空间仍是连续,但空间是在程序执行时动态分配的. 程序中会使用到的realloc函数: //realloc : (void *)reelloc (void *ptr,unsigned newsize); //使用 : char *str; //   str = (char *)realloc(str,20); 代码实现如下: <span style="font-size:18px;">#pragma once #includ

堆分配存储表示的串其基本操作的实现

以一组地址连续的存储单元存放串值字符序列,但它们的存储空间是在程序执行过程中动态分配而得. 下面是基本操作的头文件 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define MYOVERFLOW -2 typedef int Status; //-------串的堆分配存储表示--------- typedef struct{ char *ch; //若是非空串,则按串长分配

堆分配存储的串的表示和实现

串的堆分配存储结构 struct HString { char * ch;//若是非空串,则按串长分配存储区:否则ch为NULL int length;//串长度 }; 堆分配存储的串的12个基本操作 #define DestroyString ClearString//DestroyString()和ClearString()作用相同 void InitString(HString &S){ S.length = 0; S.ch = NULL; } void ClearString(HStri

数据结构 - 串的性质和基本操作(二)

串的顺序存储结构 ①定长顺序存储 结构类型: #define MAXSTRLEN 255 // 用户可在255以内定义最大串长 typedef unsigned char SString[MAXSTRLEN+1]; // 0号单元存放串的长度 分析: (1) 串的实际长度可在这个预定义长度的范围内随意设定,超过预定义长度的串值则被舍去,称之为"截断" (2) 按这种串的表示方法实现串的运算时,其基本操作为"字符序列的复制" 串的联接算法中需分三种情况处理 (第一种情