数据结构顺序表问题 对两个单词进行比较 我这个运行结果怎么都是A=B
#include "string.h"#include"iostream"
using namespace std;
typedef char ElemType; //定义一个 char 类型的别名
#define LIST_INIT_SIZE 80 // 线性表存储空间的初始分配量 (默认值)
#define LISTINCREMENT 10 // 线性表存储空间的分配增量(默认值)
///////////////......抽象类型定义......./////////////////
typedef struct {
ElemType *elem; // 存储空间基址
int length; // 当前长度
ElemType data[]; // 定义当前元素
// int listsize; // 当前分配的存储容量 (以ElemType为单位)
// int incrementsize; //约定的增补空间量(以ElemType为单位)
} SqList; // 俗称 顺序表
///////////////......顺序表操作........./////////////////
////.......比较A,B的大小.......///////
int compare(SqList &A, SqList &B)
{
int j = 0;
while (j < A.length && j < B.length)
{
if (A.elem[j] < B.elem[j]) return(-1);
else if (A.elem[j] > B.elem[j]) return (1);
else j++;
}
if (A.length == B.length) return (0);
else if (A.length < B.length) return(-1);
else return(1);
}
////.........初始化顺序表.........///////
// 构造一个最大容量为 maxsize 的顺0表 L
void InitList_Sq(SqList &L, int maxsize = LIST_INIT_SIZE)
{
L.elem = new ElemType[maxsize]; // 为顺序表分配一个最大容量为 maxsize 的数组空间
L.length = 0; // 顺序表中当前所含元素个数为 0
} // InitList_Sq
////.........释放顺序表 L 所占存储空间.........///////
void DestroyList_Sq(SqList &L)
{
delete[] L.elem;
L.length = 0;
}// DestroyList_Sq
////.........形成新的顺序表........../////
void CreatList(SqList &L)
{
char word[20];
gets_s(word);
for (int i = 0; i<strlen(word); i++)
{
L.data[i] = word[i]; //在结构体中定义一个当前的元素 通过循环字符数组
}
}
#include "iostream"
#include "process.h"
#include "SQList.h"
using namespace std;
void main( )
{
SqList LA, LB;
char Input='t';
while (Input!='0')
{
cout<<endl<<"输入单词A: ";
CreatList(LA); //生成顺序表
cout<<endl<<"输入单词B: ";
CreatList(LB);
int j;
j=compare(LA,LB); //两个字符串进行比较
if (j==0)
cout<<"A=B: "<<endl; //若A==B,则A和B为同一个单词
else if(j==-1)
cout<<"A<B "<<endl; //若A<B,则A在B之前
else if(j==1)
cout<<"A>B "<<endl; //若A>B,则A在B之后
cout<<endl<<"THE END"<<endl;
DestroyList_Sq(LA);
DestroyList_Sq(LB);
cout<<endl<<"Do you compare continue? (Input='0' NO; Input!='0' YES)"<<endl;
cin>>Input;
}
}