如图4.4 所示,索引项的结点类型为:
typedef struct
{ char name[MAXNAME]; /*串名*/
int length; /*串长*/
char *stradr; /*起始地址*/
} LNode;
如图4.5 所示,索引项的结点类型为:
typedef struct
{ char name[MAXNAME]; /*串名*/
char *stradr,*enadr; /*起始地址,末尾地址*/
} ENode;
当一个串的存储空间不超过一个指针的存储空间时,可以直接将该串存在索引项的指针域,这样即节约了存储空间,又提高查找速度,但这时要加一个特征位tag 以指出指针域存放的是指针还是串。
如图4.6 所示,索引项的结点类型为:
typedef struct
{ char name[MAXNAME];
int tag; /*特征位*/
union /*起始地址或串值*/
{char *stradr;
char value[4];
}uval;
} TNode;