当前位置:首页 >> 备考 >> 计算机 >> 计算机真题

2023考研计算机阜阳师范学院真题(5)

2022-07-20

379

2023考研计算机阜阳师范学院真题(5)

  (2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

  [题目分析]

  将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较。即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符比较,……,直至栈空,结论为字符序列是回文。在出栈元素与串中字符比较不等时,结论字符序列不是回文。

  [算法描述]

  #define StackSize 100 //假定预分配的栈空间多为100个元素

  typedef char DataType;//假定栈元素的数据类型为字符

  typedef struct

  {DataType data[StackSize];

  int top;

  }SeqStack;

  int IsHuiwen( char *t)

  {//判断t字符向量是否为回文,若是,返回1,否则返回0

  SeqStack s;

  int i , len;

  char temp;

  InitStack( &s);

  len=strlen(t); //求向量长度

  for ( i=0; i

  Push( &s, t[i]);

  while( !EmptyStack( &s))

  {// 每弹出一个字符与相应字符比较

  temp=Pop (&s);

  if( temp!=S[i]) return 0 ;// 不等则返回0

  else i++;

  }

  return 1 ; // 比较完毕均相等则返回 1

  }

  (3)设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。

  [算法描述]

  #define maxsize 栈空间容量

  void InOutS(int s[maxsize])

  //s是元素为整数的栈,本算法进行入栈和退栈操作。

  {int top=0; //top为栈指针,定义top=0时为栈空。

  for(i=1; i<=n; i++) //n个整数序列作处理。

  {cin>>x); //从键盘读入整数序列。

  if(x!=-1) // 读入的整数不等于-1时入栈。

  {if(top==maxsize-1){cout<<“栈满”<< p="">

  else s[++top]=x; //x入栈。

  }

  else //读入的整数等于-1时退栈。

  {if(top==0){ cout<<“栈空”<< p="">

  else cout<<“出栈元素是”<< s[top--]<< p="">

  }

  }//算法结束。

  以上就是关于“2023考研计算机阜阳师范学院真题(5)”的内容,更多计算机研究生真题精彩内容,请持续关注研圣在线考研频道!


免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。 如果本站文章侵犯到您的权利,请联系我们进行删帖处理。

河北研圣教育咨询有限公司热门课

友情链接:
Baidu
map