| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1509 人关注过本帖, 1 人收藏
标题:数据结构顺序表问题 对两个单词进行比较 我这个运行结果怎么都是A=B
取消只看楼主 加入收藏
vermouthg
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-3-22
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:1 
数据结构顺序表问题 对两个单词进行比较 我这个运行结果怎么都是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;
}
}
搜索更多相关主题的帖子: include 线性表 单词 空间 元素 
2017-03-22 00:22
vermouthg
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-3-22
收藏
得分:0 
回复 2楼 rjsp
那个代码只有compare函数是我自己填的,其他的都是老师写的,我还是刚刚学数据结构,所以不懂
那个compare函数里头要给elem和length赋值怎么赋啊
2017-03-22 12:37
快速回复:数据结构顺序表问题 对两个单词进行比较 我这个运行结果怎么都是A=B
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024185 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved