数据结构试验回文判断Word文档格式.docx

上传人:b****3 文档编号:7387819 上传时间:2023-05-08 格式:DOCX 页数:10 大小:76.02KB
下载 相关 举报
数据结构试验回文判断Word文档格式.docx_第1页
第1页 / 共10页
数据结构试验回文判断Word文档格式.docx_第2页
第2页 / 共10页
数据结构试验回文判断Word文档格式.docx_第3页
第3页 / 共10页
数据结构试验回文判断Word文档格式.docx_第4页
第4页 / 共10页
数据结构试验回文判断Word文档格式.docx_第5页
第5页 / 共10页
数据结构试验回文判断Word文档格式.docx_第6页
第6页 / 共10页
数据结构试验回文判断Word文档格式.docx_第7页
第7页 / 共10页
数据结构试验回文判断Word文档格式.docx_第8页
第8页 / 共10页
数据结构试验回文判断Word文档格式.docx_第9页
第9页 / 共10页
数据结构试验回文判断Word文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构试验回文判断Word文档格式.docx

《数据结构试验回文判断Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构试验回文判断Word文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

数据结构试验回文判断Word文档格式.docx

入栈与出栈,入队与出队等运算在顺序存储结构和链式存储结构上的实现。

3、算法设计分析:

(1)栈的初始化:

voidInit_stack(SqStack&

S)

{

S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));

if(!

S.base)exit(OVERFLOW);

S.top=S.base;

//栈顶与栈尾指针指向栈尾

S.stacksize=STACK_INIT_SIZE;

//return0;

}

(2)入栈

voidPush(SqStack&

S,chare){

if(S.top-S.base>

=S.stacksize)//首先判满

S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREASE)*sizeof(char));

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREASE;

*S.top++=e;

//入一个元素,栈顶指针增加1

(3)出栈:

charPop(SqStack&

S,char&

e){

if(S.top==S.base)exit(OVERFLOW);

e=*--S.top;

//删除栈顶元素并用e返回其值

returne;

(3)回文判断

/*voidCompare(SqStack&

inti,n=0;

intt=0;

charch[100];

charm,e;

charp;

cout<

<

"

请输入您要进行的判断的字符以#作为结束标志:

\n"

;

for(i=0;

i<

100;

i++)

cin>

>

p;

if(p!

='

#'

)//作为结束标志

{ch[i]=p;

else

{n=i;

break;

for(inth=0;

h<

n;

h++)//入栈

{Push(S,ch[h]);

for(intw=0;

w<

w++)

//cout<

debug"

m=Pop(S,e);

//这个地方有错误//出栈

//cout<

m;

if(m==ch[w])//比较字符是否与输入的字符相同

{t++;

if(t==n)

{cout<

输入的字符串是回文编码!

输入的字符串不是回文编码!

}*/

*********************《算法改进》***************************

ch[i];

if(ch[i]=='

Push(S,ch[i]);

n++;

n/2;

i++)//回文为对称字符,因此只需判断一半即可

if(m!

=ch[i])

t++;

if(t==n/2)

(4)测试调节:

(5)总结:

通过对回文判断的代码编写,对栈的更加了解,初始化(开辟空间),

入栈、出栈等更加的了解。

但是编写这个代码没有用到队列,以后在课下时间,会编写一个更复杂的代码,加以熟悉。

总的来说,做这个小程序,对栈确实有了进一步的了解,一些基本的操作也更加的熟悉,为以后的课设打下基础。

(6)代码附录:

#include<

iostream.h>

stdio.h>

stdlib.h>

string.h>

#defineSTACK_INIT_SIZE100

#defineSTACKINCREASE10

#defineOVERFLOW0

//usingnamespacestd;

typedefstruct{

char*base;

char*top;

intstacksize;

}SqStack;

=S.stacksize)

//if(S.top==S.base)//exit(OVERFLOW);

//{cout<

empty"

//e='

E'

//}

//else

//{e=*--S.top;

if(S.top==S.base)exit(OVERFLOW);

e=*--S.top;

h++)

//这个地方有错误

if(m==ch[w])

voidCompare(SqStack&

S){

请输入您要进行判断的字符,以'

作为结束的标志:

voidmain()

SqStackS;

Init_stack(S);

Compare(S);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2