当前位置: 首页 > news >正文

纯静态网站seoseo排名优化北京

纯静态网站seo,seo排名优化北京,网页在线发短信平台,沈阳网站建设设计顺序栈 一、主要功能 实现了顺序栈(SqStack)的数据结构,并利用该数据结构进行了栈的基本操作以及数制转换的功能。 二、数据结构定义 定义了一些常量: MAXSIZE表示栈的最大长度为 100。OVERFLOw表示存储失败的错误码为 -2。O…

顺序栈 

一、主要功能

实现了顺序栈(SqStack)的数据结构,并利用该数据结构进行了栈的基本操作以及数制转换的功能。

二、数据结构定义

  1. 定义了一些常量:
    • MAXSIZE表示栈的最大长度为 100。
    • OVERFLOw表示存储失败的错误码为 -2。
    • OKERROR分别表示操作成功和失败的状态码。
  2. 定义了数据类型:
    • Statusint类型,用于表示操作的状态。
    • SEleTypeint类型,代表栈中存储的数据类型。
  3. 定义了顺序栈结构体SqStack
    • SEleType *base是指向栈内元素数组的指针。
    • SEleType *top是栈顶指针。
    • int stacksize表示当前分配的栈可使用的最大存储容量。

三、函数功能

  1. StackCreate函数:用于初始化顺序栈,为栈分配内存空间,并设置初始状态。
  2. StackEmpity函数:判断栈是否为空。
  3. StackFull函数:判断栈是否已满。
  4. StackPush函数:将元素入栈,如果栈已满则返回错误状态。
  5. StackPop函数:将栈顶元素出栈,并通过引用参数返回该元素,如果栈为空则返回错误状态。
  6. StackToEmpty函数:将栈置空,通过不断出栈操作实现。
  7. StackDestroy函数:销毁栈,释放内存空间。
  8. StackTop函数:获取栈顶元素。
  9. StackPrint函数:打印栈内所有元素,通过不断出栈并输出实现。

四、主函数流程

  1. 首先创建一个顺序栈S并初始化。
  2. 向栈中依次压入数字 5、4、2、3、1,然后打印栈内元素。
  3. 将栈置空。
  4. 进行数制转换功能,用户输入一个数字N和转换的进制数JZ,通过不断对N取余并压入栈中,最后打印转换后的结果。
  5. 销毁栈。
    #include <bits/stdc++.h>
    using namespace std;#define MAXSIZE 100 //最大长度
    #define OVERFLOw -2
    #define OK 1
    #define ERROR 0typedef int Status;
    typedef int SEleType;//数据类型typedef struct {SEleType *base;//栈内元素数组SEleType *top;//栈顶指针int stacksize;  // 当前分配的栈可使用的最大存储容量  
    }SqStack;
    //初始化
    int StackCreate(SqStack &S){S.base = new SEleType[MAXSIZE];if(!S.base) exit(OVERFLOw);//存储失败S.top = S.base;//初始栈里没元素 top = base S.stacksize = MAXSIZE;return OK;//初始化成功
    }
    //栈的判空
    Status StackEmpity(SqStack &S){if(S.top == S.base) return 1;//空else return 0;//非空
    }
    //栈的判满
    Status StackFull(SqStack &S){if(S.top - S.base == S.stacksize) return 1;//满else return 0;//非满
    }
    //入栈
    Status StackPush(SqStack &S,SEleType e){if(StackFull(S)) return ERROR;*S.top++ = e;//等同于数组赋值后 下标++return OK;
    }
    //出栈
    Status StackPop(SqStack &S,SEleType &e){if(StackEmpity(S)) return ERROR;//栈空//用e接收栈顶元素e = *(--S.top);//top 指向的是栈顶的上方return OK;
    }
    //栈的置空
    Status StackToEmpty(SqStack &S) {SEleType temp;while (!StackEmpity(S)) {StackPop(S, temp);}return OK;
    }
    //栈的销毁
    Status StackDestroy(SqStack &S){delete[] S.base;S.base = NULL;S.top = NULL;S.stacksize = 0;return OK;
    }
    //取栈顶元素
    SEleType StackTop(SqStack &S){return *(S.top-1);
    }
    //打印栈内所有元素
    void StackPrint(SqStack &S){while(!StackEmpity(S)){SEleType e;StackPop(S,e);cout<<e<<" ";}
    }
    int main(){SqStack S ;StackCreate(S);StackPush(S,5);StackPush(S,4);StackPush(S,2);StackPush(S,3);StackPush(S,1);StackPrint(S);StackToEmpty(S);//数制转换int N;cout<<"\n输入要转换的数字: ";cin>>N; int T = N;int JZ;cout<<"转换为几进制(<10): ";cin>>JZ;while(N){StackPush(S,N%JZ);N/=JZ;}cout<<"10 进制数: "<<T<<"在"<<JZ<<"进制转换后是 "<<endl;StackPrint(S);StackDestroy(S);return 0;
    }

    链栈

一、主要功能

实现了链式栈(LinkStack)的数据结构,并利用该数据结构进行了栈的基本操作以及数制转换的功能。

二、数据结构定义

  1. 定义了一些常量:
    • MAXSIZE表示栈的最大长度为 100(但在链式栈中未实际用到该常量)。
    • OVERFLOw表示存储失败的错误码为 -2(未实际用到)。
    • OKERROR分别表示操作成功和失败的状态码。
  2. 定义了数据类型:
    • Statusint类型,用于表示操作的状态。
    • LEleTypeint类型,代表栈中存储的数据类型。
  3. 定义了链式栈的节点结构体StackNode
    • LEleType data表示节点存储的数据。
    • struct StackNode *next指向下一个节点的指针。
    • StackNode是节点结构体的名称,*LinkStack是指向节点的指针类型别名,用于表示链式栈。

三、函数功能

  1. StackCreate函数:用于初始化链式栈,将栈顶指针置为NULL
  2. StackEmpty函数:判断链式栈是否为空。
  3. StackPush函数:创建一个新节点,将新节点的数据域设置为给定元素,然后将新节点插入到栈顶(即让新节点的next指向当前栈顶,然后更新栈顶指针为新节点)。
  4. StackPop函数:如果栈不为空,将栈顶元素出栈,通过引用参数返回该元素,并释放栈顶节点的内存空间,更新栈顶指针指向下一个节点。
  5. StackTop函数:获取栈顶元素的值,但不修改栈的状态。
  6. StackToEmpty函数:通过不断出栈操作将链式栈置空。
  7. StackDestroy函数:调用StackToEmpty函数将栈置空后,将栈顶指针置为NULL,实现栈的销毁。
  8. StackPrint函数:通过不断出栈并输出元素的方式打印链式栈中的所有元素,但这个过程会破坏栈的结构。

四、主函数流程

  1. 首先创建一个链式栈S并初始化。
  2. 向栈中依次压入数字 5、4、2、3、1,然后打印栈内元素(这会破坏栈的结构)。
  3. 将栈置空。
  4. 进行数制转换功能,用户输入一个数字N和转换的进制数JZ,通过不断对N取余并压入栈中,最后打印转换后的结果(同样会破坏栈的结构)。
  5. 销毁栈。
#include <bits/stdc++.h>
using namespace std;#define MAXSIZE 100 //最大长度
#define OVERFLOw -2
#define OK 1
#define ERROR 0typedef int Status;
typedef int LEleType;//数据类型typedef struct StackNode{ LEleType  data; struct StackNode *next; 
} StackNode,*LinkStack; 
//栈的初始化
Status StackCreate(LinkStack &S){S = NULL;return OK;
}
//栈的判空
Status StackEmpty(LinkStack &S){if(!S) return 1;//空else return 0;//非空
}
//入栈
Status StackPush(LinkStack &S,LEleType e){StackNode * p = new StackNode; //新节点p->data = e; //新节点的数据域p->next = S; //新节点压入栈顶S = p; //修改栈顶指针为preturn OK;
}
//出栈
Status StackPop(LinkStack &S,LEleType &e){if(StackEmpty(S)) return ERROR;e = S->data;StackNode * p = S; //新节点S = S->next;delete p;return OK;
}
//获取栈顶元素
LEleType StackTop(LinkStack &S){LEleType e = S->data;return e;
}
//栈的置空
void StackToEmpty(LinkStack &S){while(!StackEmpty(S)){LEleType e;StackPop(S,e);}
}
//栈的销毁
void StackDestroy(LinkStack &S) {StackToEmpty(S);S = NULL;
}
//打印所有元素(破坏了栈)
void StackPrint(LinkStack &S){StackNode * p = S;while(!StackEmpty(S)){LEleType e;StackPop(S,e);cout<<e<<" ";p = p->next;}
}
using namespace std;
int main(){LinkStack S;StackCreate(S);StackPush(S,5);StackPush(S,4);StackPush(S,2);StackPush(S,3);StackPush(S,1);StackPrint(S);StackToEmpty(S);//数制转换int N;cout<<"\n输入要转换的数字: ";cin>>N; int T = N;int JZ;cout<<"转换为几进制(<10): ";cin>>JZ;while(N){StackPush(S,N%JZ);N/=JZ;}cout<<"10 进制数: "<<T<<"在"<<JZ<<"进制转换后是 "<<endl;StackPrint(S);StackDestroy(S);return 0;
}

运行结果图如下

http://www.hkea.cn/news/47265/

相关文章:

  • 开封网站建设哪家好指数计算器
  • 网站开发 架构石家庄seo关键词排名
  • 可以免费做商业网站的cms百度seo霸屏软件
  • 哪家网站建设专业快速建站教程
  • 坪山网站建设行业现状优化seo方案
  • 做网站需要架构师吗网站平台有哪些
  • 网站建设丿选择金手指15凡科建站官网
  • 可以做外国网站文章武汉企业seo推广
  • 天津网站建设公司最好太原做网站哪家好
  • 网站代下单怎么做百度指数数据分析平台入口
  • 淘宝做动效代码的网站seo的优化方向
  • 番禺建网站公司网站搜索工具
  • 安徽万振建设集团网站长春网站推广公司
  • 网站怎么制作 推广seo超级外链工具免费
  • 中小学网站建设探讨东莞seo整站优化火速
  • php是网站开发的语言吗企业网站的作用
  • 网站站外优化怎么做企业推广app
  • 拉趣网站是谁做的威海网站制作
  • 做宣传海报的网站百度导航2023年最新版
  • 湖南做网站 磐石网络windows优化大师官方免费
  • 制作网站的最新软件如何优化关键词的方法
  • 东莞工作招聘网最新招聘搜索 引擎优化
  • 宁波俄语网站建设免费发广告的平台有哪些
  • 郑州外贸网站建设及维护营销软件商城
  • 泉州百度关键词排名广州网站营销优化qq
  • 怎么做wep网站营销推广活动方案
  • 展示型网站php官方app下载安装
  • 嘉祥网站建设广东省自然资源厅
  • 忘记网站后台密码网站排名软件推荐
  • 怎么查公司网站有没有被收录火爆产品的推广文案