程序设计思路:栈的特点是先进后出,而回文串是一个正读和反读都一样的字符串,所以可以利用栈的特点将串入栈,在出栈,最后将出栈的结果和用户输入的串进行比较即可。 程序流程图: 创建栈分配内存 源程序代码:
#include \#include \#include \typedef struct Stack {
char * top; char * base; int stacksize;
字符串出栈与输入N 比较 输入字符串进栈 开始 Y 是回文 N
不是回文 }STACK;
void InitStack(STACK &s) {
s.top = (char *)malloc(100*sizeof(char)); if(s.top==NULL) {
printf(\动态内存分配失败!\\n\return; }
s.base = s.top; *s.top = 0;
s.stacksize = 100;//分配100个 return; }
void push(STACK &s,char k) {
if((s.top-s.base)>=s.stacksize) {
printf(\栈溢出\return; } else {
*s.top++=k; } }
void pop(STACK &s,char &k) {
if(s.base==s.top) {
printf(\为空栈\return; } else {
k=*--s.top; return; } }
bool check(STACK &s) {
char str[100];
char data[100];
printf(\请输入检测的字符串:\\n\scanf(\
for(int i=0;i push(s,str[i]); } for(int j=0;j pop(s,data[j]); } for(int n=0;n if(str[n] != data[n]) { return false; }else{ continue; } } return true; } int main(void) { Stack s; InitStack(s); if(check(s)) { printf(\是回文串\}else{ printf(\不是回文串\} return 0; } 实验三稀疏矩阵的转置运算 程序设计思路:编写一个完整的程序,实现稀疏矩阵三元组的存贮及其转置矩阵的算法设计。在主函数中程序中调用转置函数、输出原矩阵函数和转置后的矩阵函数。 程序流程图: 源程序代码: #include int row,col; int e; 调用转置函数进行转置 输出转置之后的矩阵 输入行列值以及元素值 创建空的稀疏矩阵
相关推荐: