c++考试资料Word下载.docx
《c++考试资料Word下载.docx》由会员分享,可在线阅读,更多相关《c++考试资料Word下载.docx(27页珍藏版)》请在冰点文库上搜索。
![c++考试资料Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/d942ed9b-e1e2-440b-9a99-f0c871800388/d942ed9b-e1e2-440b-9a99-f0c8718003881.gif)
l->
size=0;
}
intListSize(constSeqList*l)//求长。
读取元素个数
return(l->
size);
intListEmpty(constSeqList*l)//判空。
判断顺序表是否空
size==0);
intListFull(constSeqList*l)//判满。
判断顺序表是否满
size==MaxSeqSize);
TypeGetData(constSeqList*l,intid)//取值。
if(id<
0||id>
l->
size-1)
SeqError("
GetData:
Indexisoutofrange!
"
);
data[id]);
intFind(constSeqList*l,Typeitem)//查找。
for(inti=0;
i<
size;
i++)
if(l->
data[i]==item)
return(i);
return(-1);
voidReplace(SeqList*l,Typeitem,intid)//替换。
Update:
data[id]=item;
voidInsert(SeqList*l,Typeitem,intid)//定点插入。
if(l->
size==MaxSeqSize)
Insert:
SeqListisfull!
size)
for(inti=l->
size-1;
i>
=id;
i--)
l->
data[i+1]=l->
data[i];
size++;
voidInsertRear(SeqList*l,Typeitem)//尾插。
InsertRear:
data[l->
size]=item;
voidErase(SeqList*l,intid)//定点删除。
size==0)
Delete:
anemptylist!
Indexisoutofrange!
for(inti=id+1;
data[i-1]=l->
size--;
voidClearList(SeqList*l)//清表。
voidSeqError(constchar*c)//错误信息处理函数
{
printf("
%s"
c);
exit
(1);
}=
Main.cpp
typedefcharType;
#include"
seqlist.h"
voidmain(void)
SeqListL;
SetList(&
L);
InsertRear(&
L,'
a'
InsertRear(&
d'
Insert(&
b'
1);
inti=Find(&
if(i!
=-1)
Replace(&
c'
i);
Erase(&
L,0);
intn=ListSize(&
for(i=0;
n;
printf("
%c\t"
GetData(&
L,i));
ClearList(&
seqlist_class.h
#ifndefSEQLIST_CLASS_H
#defineSEQLIST_CLASS_H
iostream.h>
constintMaxSeqSize=100;
classSeqList
voidError(char*c)const{cout<
<
c;
}//错误信息报告
public:
SeqList(void){size=0;
}//缺省构造函数
intSize(void)const{return(size);
}//取元素个数
boolEmpty(void)const{return(size==0);
}//判空
boolFull(void)const{return(size==MaxSeqSize);
}//判满
constType&
GetData(intid)const;
//取值
intFind(constType&
item)const;
//查找
voidReplace(constType&
item,intid);
//修改
voidInsert(constType&
//定位插入
voidInsertRear(constType&
item);
//尾插
voidErase(intid);
//定位删除
voidClear(void){size=0;
}//清表
seqlist_class
这几项都在声明里
constType&
SeqList:
:
GetData(intid)const//取值
Error("
Idoutofrange!
return(data[id]);
intSeqList:
Find(constType&
item)const//查找
if(data[i]==item)
voidSeqList:
Replace(constType&
item,intid)//修改
data[id]=item;
Insert(constType&
item,intid)//定位插入
if(size==MaxSeqSize)
SeqListfull!
for(inti=size-1;
data[i+1]=data[i];
size++;
InsertRear(constType&
item)//后插
data[size]=item;
Erase(intid)//定位删除
if(size==0)
Idoutofrange!
data[i-1]=data[i];
size--;
这两项都在声明里
L.InsertRear('
L.InsertRear('
L.Insert('
inti=L.Find('
L.Replace('
L.Erase(0);
intn=L.Size();
cout<
L.GetData(i)<
'
\t'
;
cout<
endl;
L.Clear();
str.h
#ifndefSTR_H
#defineSTR_H
string.h>
structString
char*str;
voidSetString(String*s,constchar*c);
//构造
voidFreeString(String*s);
//析构
voidStrAssign(String*s,constString*cs);
//将结构串cs赋值给结构串s
voidCStrAssign(String*s,constchar*c);
//将串c赋值给结构串s
char*Char(String*s);
//取C串指针
voidStrConcat(constString*s,constString*cs,String*w);
//结构串s和cs连接为结构串w
intStrCompare(constString*s,constString*cs);
//两个结构串比较
voidSubString(constString*s,String*cs,intid,intcount);
//从结构串s的下标id开始连续取count个字符组成结构串cs
voidStrInsert(String*s,constString*cs,intid);
//在结构串s的下标id插入结构串cs
voidStrErase(String*s,intid,intcount);
//从结构串s的下标id开始连续删除count个字符
voidGetStr(String*s);
//串输入
voidPutStr(constString*s);
//串输出
intFind(constString*s,charch,intstart);
//从start开始查找ch
charStrGetData(constString*s,intid);
//返回下标id处的字符
intStrLength(constString*s);
//求串长
intStrEmpty(constString*s);
//判串空
voidClearString(String*s);
//清为空串
voidStrError(constchar*c);
//错误信息报告
str.cpp
str.h"
voidSetString(String*s,constchar*c)//构造
s->
size=strlen(c);
str=(char*)malloc(s->
size+1);
if(s->
str==NULL)
StrError("
SetString:
overflow!
strcpy(s->
str,c);
voidFreeString(String*s)//析构
free(s->
str);
voidGetStr(String*s)//串输入
charc[256];
gets(c);
CStrAssign(s,c);
voidPutStr(constString*s)//串输出
puts(s->
voidStrAssign(String*s,constString*cs)
//将结构串cs赋值给结构串s
size!
=cs->
{
free(s->
s->
size=cs->
if(s->
StrError("
StrAssign:
}
str,cs->
voidCStrAssign(String*s,constchar*c)
//将串c赋值给结构串s
intn=strlen(c);
=n)
size=n;
CStrAssign:
char*Char(String*s)//取C串指针
return(s->
voidStrConcat(constString*s,constString*cs,String*w)//结构串s和cs连接为结构串w
free(w->
w->
size=s->
size+cs->
str=(char*)malloc(w->
if(w->
StrConcat:
strcpy(w->
str,s->
strcat(w->
intStrCompare(constString*s,constString*cs)//两个结构串比较
return(strcmp(s->
str));
对应c++中声明里的关系符运算
voidSubString(constString*s,String*cs,intid,intcount)//从结构串s的下标id开始连续取count个字符组成结构串cs
0)
SubString:
idillegal!
if(id>
s->
size-1||count<
=0)
count=0;
intleft=s->
size-id;
if(left>
0&
&
count>
left)
count=left;
free(cs->
cs->
size=count;
str=(char*)malloc(cs->
if(cs->
char*p=cs->
str;
char*q=s->
str+id;
for(inti=1;
=count;
*p++=*q++;
*p='
\0'
voidStrInsert(String*s,constString*cs,intid)//在结构串s的下标id插入结构串cs
StrInsert:
char*tmp=s->
intn=s->
str=(char*)malloc(n+1);
str,tmp);
free(tmp);
char*p=s->
str+s->
str+n;
size-id+1;
//需要向后移动的字符包含结束符
=left;
*q--=*p--;
p=s->
q=cs->
while(*q!
='
)
voidStrErase(String*s,intid,intcount)//从结构串s的下标id开始连续删除count个字符
return;
if(count>
str+id+count;
size=strlen(s->
str=(char*)malloc(s->
StrDelete:
intStrLength(constString*s)//求串长与
{c++
声
}明
intStrEmpty(constString*s)//判串空对
{应
}
intFind(constString*s,charch,intstart)//从start开始查找ch
inti;
char*p;
if(start>
return(-1);
if(start<
start=0;
for(p=s->
str+start,i=start;
*p!
++p,++i)
if(*p==ch)
charStrGetData(constString*s,intid)//返回下标id处的字符
StrGetData:
Idillegal!
return(*(s->
str+id));
voidClearString(String*s)//清为空串
str=(char*)malloc(sizeof(char));
ClearString:
*(s->
str)='
voidStrError(constchar*c)//错误信息报告
StringW,H,S,A;
SetString(&
S,"
A,"
W,"
work"
H,"
hard"
StrConcat(&
W,&
H,&
A);
PutStr(&
CStrAssign(&
study"
StrInsert(&
A,&
S,4);
puts(Char(&
A));
StrErase(&
A,0,4);
%s\n"
Char(&
FreeString(&
S);
W);
H);
stringclass.h
#ifndefSTRINGCLASS_H
#defineSTRINGCLASS_H
#inc