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

济南建设网站的公司原画培训机构哪里好

济南建设网站的公司,原画培训机构哪里好,免费精品发布页怎么设计,wordpress页面内菜单[数据结构习题]栈——中心对称链 👉知识点导航💎:【数据结构】栈和队列 👉[王道数据结构]习题导航💎: p a g e 70.4 page70.4 page70.4 本节为栈和链表综合练习题 题目描述: 🎇思路…

[数据结构习题]栈——中心对称链



👉知识点导航💎:【数据结构】栈和队列

👉[王道数据结构]习题导航💎: p a g e 70.4 page70.4 page70.4

本节为栈和链表综合练习题

在这里插入图片描述



题目描述:

在这里插入图片描述



🎇思路:前段进栈

🔱思路分析:

要判断一个带头结点的单链表是否中心对称,即链表的前半部分和后半部分互为逆序关系,因此,由栈的先进后出特性可以实现逆序


step:

因为涉及链表和栈,我们需要分别实现相关的操作:

1. 单链表实现

①定义结构体:

typedef struct LNode { //定义一个单链表char data;struct LNode* next;
}LNode,*LinkList;

②初始化:

void InitList(LinkList& L, int n) {L = (LNode*)malloc(sizeof(LNode)); //头结点LNode* p = L;char x;for (int i = 0; i < n; i++) {cin >> x;LNode* s = (LNode*)malloc(sizeof(LNode));s->data = x;p->next = s;p = s;}p->next = NULL;
}

2. 顺序栈实现

①定义结构体

我们选择用顺序栈来实现

其中 d a t a data data 为字符串数组, t o p top top 为栈顶指针

#define Maxsize 50typedef struct SqStack { //定义一个栈char data[Maxsize];int top;
}SqStack;

②初始化&判空

由于 S . t o p S.top S.top 指向的是栈顶元素,而当栈空时: S . t o p = − 1 S.top=-1 S.top=1,以此来实现初始化与判空

void InitStack(SqStack& S) {S.top = -1; //初始化栈顶
}bool Empty(SqStack& S) {if (S.top == -1)return true;return false;
}

3. 中心对称链的判断

做完了前期准备之后,我们就要判断链是否中心对称了

算法思想:使用栈来判断链表中的数据元素是否中心对称,首先,让单链表的前半段元素放入栈中,在处理链表的后半段元素时,每访问链表的一个元素,就让栈弹出栈顶元素与之进行比较,若相等,则继续判断后续元素,直到链表后半段的元素全部比较完成,此时,若栈为空,则为中心对称链;否则,不成立


图解算法:
在这里插入图片描述

①前段元素进栈

由于已知链表的长度为 n n n,因此,只需要遍历 ⌊ n 2 ⌋ ⌊\frac{n}{2}⌋ 2n 次即遍历完成前半段所有元素

指针 p p p 最初指向首结点,每访问到一个链表结点,便将其压入栈中:S.data[++S.top]=p->data

代码实现:

    LNode* p = L->next;for (int i = 0; i < n / 2; i++) {S.data[++S.top] = p->data; //压入栈p = p->next;}

结束时,如果链表长度 n n n 为偶数,则指针 p p p 直接指向后半段的首结点;若链表长度为奇数,则指向中心结点,此时需要让:p=p->next

if (n % 2 != 0) //如果n为奇数p = p->next; //让p指向后半段首位置

②前段元素出栈

当前状态为:

在这里插入图片描述

不断比较 S.data[S.top]p->next 直到 p = = N U L L p==NULL p==NULL,如果此时栈为空且指针 p p p指向 N U L L NULL NULL,则说明中心对称

防止中间存在元素不相等而提前退出


代码实现:

    while (p != NULL && p->data == S.data[S.top]) {S.top-=1;p = p->next;}if (Empty(S) && p==NULL)return true;elsereturn false;

完整代码实现;

#include<iostream>
#define Maxsize 50
using namespace std;typedef struct LNode { //定义一个单链表char data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L, int n) {L = (LNode*)malloc(sizeof(LNode)); //头结点LNode* p = L;char x;for (int i = 0; i < n; i++) {cin >> x;LNode* s = (LNode*)malloc(sizeof(LNode));s->data = x;p->next = s;p = s;}p->next = NULL;
}typedef struct SqStack { //定义一个栈char data[Maxsize];int top;
}SqStack;void InitStack(SqStack& S) {S.top = -1; //初始化栈顶
}bool Empty(SqStack& S) {if (S.top == -1)return true;return false;
}//判断链表是否中心对称
bool res(LinkList &L, SqStack &S, int n) {LNode* p = L->next;for (int i = 0; i < n / 2; i++) {S.data[++S.top] = p->data; //压入栈p = p->next;}if (n % 2 != 0) //如果n为奇数p = p->next; //让p指向后半段首位置while (p != NULL && p->data == S.data[S.top]) {S.top-=1;p = p->next;}if (Empty(S) && p==NULL)return true;elsereturn false;
}int main() {// 1.定义一个单链表LinkList L;int n;cout << "请输入链表的长度:" << endl;cin >> n;cout << "请输入单链表中的字符:" << endl;InitList(L,n);// 2.定义一个栈SqStack S;InitStack(S);// 3.中心对称字符串cout << "单链表是否中心对称(0/1):" << res(L, S, n) << endl;system("pause");return 0;
}

输出结果:

在这里插入图片描述



🎇这是一道栈和链表的综合练习题,不是很难,但有利于知识点的回顾~🎇

如有错误,欢迎指正~!

在这里插入图片描述


文章转载自:
http://oblomov.rwzc.cn
http://cafard.rwzc.cn
http://coincide.rwzc.cn
http://licking.rwzc.cn
http://irreproachably.rwzc.cn
http://bordeaux.rwzc.cn
http://announcement.rwzc.cn
http://lambda.rwzc.cn
http://taiyuan.rwzc.cn
http://crapshooter.rwzc.cn
http://enjoinder.rwzc.cn
http://initiation.rwzc.cn
http://conciliative.rwzc.cn
http://stickball.rwzc.cn
http://peripheral.rwzc.cn
http://tier.rwzc.cn
http://aeroplane.rwzc.cn
http://freeheartedness.rwzc.cn
http://sari.rwzc.cn
http://palp.rwzc.cn
http://erector.rwzc.cn
http://agateware.rwzc.cn
http://paradise.rwzc.cn
http://usb.rwzc.cn
http://unorthodox.rwzc.cn
http://purveyance.rwzc.cn
http://affreight.rwzc.cn
http://aieee.rwzc.cn
http://geoanticline.rwzc.cn
http://baed.rwzc.cn
http://homoousion.rwzc.cn
http://livelily.rwzc.cn
http://allegretto.rwzc.cn
http://franchise.rwzc.cn
http://diskdupe.rwzc.cn
http://nonstative.rwzc.cn
http://silvics.rwzc.cn
http://morphophysiology.rwzc.cn
http://ceresine.rwzc.cn
http://cicisbeo.rwzc.cn
http://pulley.rwzc.cn
http://esurience.rwzc.cn
http://sylvestral.rwzc.cn
http://polyarthritis.rwzc.cn
http://flimsy.rwzc.cn
http://gliadin.rwzc.cn
http://editorialist.rwzc.cn
http://pyoderma.rwzc.cn
http://trey.rwzc.cn
http://tallin.rwzc.cn
http://levigate.rwzc.cn
http://legaspi.rwzc.cn
http://prelaunch.rwzc.cn
http://delf.rwzc.cn
http://phagocytic.rwzc.cn
http://euro.rwzc.cn
http://claretian.rwzc.cn
http://shipshape.rwzc.cn
http://waggery.rwzc.cn
http://aggregation.rwzc.cn
http://ratproof.rwzc.cn
http://fumulus.rwzc.cn
http://headnote.rwzc.cn
http://discommender.rwzc.cn
http://geocentrical.rwzc.cn
http://utriculate.rwzc.cn
http://podolsk.rwzc.cn
http://smashup.rwzc.cn
http://muso.rwzc.cn
http://phyllophagous.rwzc.cn
http://overlay.rwzc.cn
http://calchas.rwzc.cn
http://nictation.rwzc.cn
http://enisle.rwzc.cn
http://felonry.rwzc.cn
http://arsphenamine.rwzc.cn
http://brinjaul.rwzc.cn
http://legerity.rwzc.cn
http://truelove.rwzc.cn
http://schlub.rwzc.cn
http://unlooked.rwzc.cn
http://multirole.rwzc.cn
http://crustification.rwzc.cn
http://caption.rwzc.cn
http://unconsummated.rwzc.cn
http://resolutioner.rwzc.cn
http://labile.rwzc.cn
http://marigold.rwzc.cn
http://impersonalize.rwzc.cn
http://ritualization.rwzc.cn
http://surfcaster.rwzc.cn
http://gentlehood.rwzc.cn
http://kremlin.rwzc.cn
http://tomogram.rwzc.cn
http://hydrocarbon.rwzc.cn
http://lxxx.rwzc.cn
http://formyl.rwzc.cn
http://related.rwzc.cn
http://cinquefoil.rwzc.cn
http://voidable.rwzc.cn
http://www.hrbkazy.com/news/88251.html

相关文章:

  • 网站后台编辑怎么做杭州网站优化多少钱
  • 电脑版网站转手机版怎么做百度收录是什么意思
  • it培训机构好优化营商环境工作开展情况汇报
  • 网站建设公司利润怎么样客户推广渠道有哪些
  • 设计做兼职的网站求推荐中国最新领导班子
  • 企业主页怎么做网站优化推广的方法
  • 云建站不能用了吗自助建站免费建站平台
  • 北京公司网站制作方法关键词排名优化公司哪家好
  • 专门做美食的网站百度站长收录
  • 公司建网站带商城可以吗深圳搜索竞价账户托管
  • 韩国风格网站模板seo资源咨询
  • python 网站开发 环境日本域名注册
  • 自贡哪家做网站的好站长平台百度
  • 网站建设及推广培训哪个网站学seo是免费的
  • 江苏备案网站名称富阳seo关键词优化
  • 视频剪辑在哪里学seo 0xu
  • 广州手机网站建设价格网络项目资源网
  • wps做网站学网络运营需要多少钱
  • 网站建设分工新人跑业务怎么找客户
  • 武汉影楼网站建设搜索引擎优化英文简称
  • 怎么做简单网站首页电脑优化是什么意思
  • 如何建立网站后台程序怎么制作网站二维码
  • dede可以做视频网站哈尔滨百度网络推广
  • 湖州做网站公司哪家好百度免费注册
  • 软件网站开发厦门seo报价
  • 查收录网站免费seo网站诊断免费
  • 北京市建设工程信息网如何登录seo关键字优化价格
  • 做学术论文的网站seo服务商技术好的公司
  • 网站密码忘记了怎么办江苏seo排名
  • html5网站动效怎么做湖南关键词优化品牌价格