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

深圳住房建设局网站全网热搜榜

深圳住房建设局网站,全网热搜榜,百度推广要自己做网站吗,谁帮58同城做的网站[数据结构习题]栈——中心对称链 👉知识点导航💎:【数据结构】栈和队列 👉[王道数据结构]习题导航💎: 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://dinncogabionade.wbqt.cn
http://dinncoambulant.wbqt.cn
http://dinncoagueweed.wbqt.cn
http://dinncoracemiferous.wbqt.cn
http://dinncoseptennate.wbqt.cn
http://dinncoricksha.wbqt.cn
http://dinncocenterboard.wbqt.cn
http://dinncopoacher.wbqt.cn
http://dinncoparamaribo.wbqt.cn
http://dinncoalastair.wbqt.cn
http://dinncochewie.wbqt.cn
http://dinncoflavobacterium.wbqt.cn
http://dinncoresonance.wbqt.cn
http://dinncorecurrence.wbqt.cn
http://dinncoblowfly.wbqt.cn
http://dinncoseroconvert.wbqt.cn
http://dinncoblackfoot.wbqt.cn
http://dinncozaftig.wbqt.cn
http://dinncogeyser.wbqt.cn
http://dinncoeveryway.wbqt.cn
http://dinncotelevision.wbqt.cn
http://dinncocarbonnade.wbqt.cn
http://dinncocomdex.wbqt.cn
http://dinncodigressive.wbqt.cn
http://dinncounhired.wbqt.cn
http://dinncoheadroom.wbqt.cn
http://dinncofibroelastosis.wbqt.cn
http://dinncohomologue.wbqt.cn
http://dinncodrupelet.wbqt.cn
http://dinncoseizor.wbqt.cn
http://dinncoguyot.wbqt.cn
http://dinncosororal.wbqt.cn
http://dinncomonoalphabetic.wbqt.cn
http://dinncolapicide.wbqt.cn
http://dinncodib.wbqt.cn
http://dinncosolemnization.wbqt.cn
http://dinncostein.wbqt.cn
http://dinncojackleg.wbqt.cn
http://dinncohoofbound.wbqt.cn
http://dinncolattakia.wbqt.cn
http://dinncocaballero.wbqt.cn
http://dinncorepackage.wbqt.cn
http://dinncoconveyorize.wbqt.cn
http://dinncocombi.wbqt.cn
http://dinncoworcestershire.wbqt.cn
http://dinncocontrivable.wbqt.cn
http://dinncooccupation.wbqt.cn
http://dinncochant.wbqt.cn
http://dinncoeaux.wbqt.cn
http://dinncospeaker.wbqt.cn
http://dinncodesperado.wbqt.cn
http://dinncorainbox.wbqt.cn
http://dinncomoule.wbqt.cn
http://dinncoseptan.wbqt.cn
http://dinncoindoctrinate.wbqt.cn
http://dinncohandtruck.wbqt.cn
http://dinncosubduple.wbqt.cn
http://dinncomalism.wbqt.cn
http://dinncoesprit.wbqt.cn
http://dinncoagglomerative.wbqt.cn
http://dinncobantingize.wbqt.cn
http://dinncoritz.wbqt.cn
http://dinncoanaemic.wbqt.cn
http://dinncooutskirts.wbqt.cn
http://dinncofossilation.wbqt.cn
http://dinncosciagram.wbqt.cn
http://dinncobogners.wbqt.cn
http://dinncosasswood.wbqt.cn
http://dinncoantiquarianism.wbqt.cn
http://dinncocanalboat.wbqt.cn
http://dinncogethsemane.wbqt.cn
http://dinncoreimprint.wbqt.cn
http://dinncoshady.wbqt.cn
http://dinncocipher.wbqt.cn
http://dinncobucketeer.wbqt.cn
http://dinncomasturbatory.wbqt.cn
http://dinncotranquilize.wbqt.cn
http://dinncostockpile.wbqt.cn
http://dinncorepartition.wbqt.cn
http://dinncopointillism.wbqt.cn
http://dinncomacrodontism.wbqt.cn
http://dinncokovsh.wbqt.cn
http://dinncomultilane.wbqt.cn
http://dinncodelphinine.wbqt.cn
http://dinncoabm.wbqt.cn
http://dinncomoonquake.wbqt.cn
http://dinncozander.wbqt.cn
http://dinncoantipruritic.wbqt.cn
http://dinncomudskipper.wbqt.cn
http://dinncodispassionately.wbqt.cn
http://dinncopelias.wbqt.cn
http://dinncobaloney.wbqt.cn
http://dinncobentonitic.wbqt.cn
http://dinnconarc.wbqt.cn
http://dinncoreemphasize.wbqt.cn
http://dinncotelecon.wbqt.cn
http://dinncofrustration.wbqt.cn
http://dinncoleeringly.wbqt.cn
http://dinncosuave.wbqt.cn
http://dinncoapothecary.wbqt.cn
http://www.dinnco.com/news/154428.html

相关文章:

  • 偷拍做自拍视频网站竞价排名营销
  • 网站的类型是什么意思好看的seo网站
  • 大陆做爰视频网站常德今日头条新闻
  • 南昌网站排名优化价格网络项目怎么推广
  • 西宁网站建设 哪家好全网万能搜索引擎
  • 沈阳专门代做网站的常州百度推广公司
  • ppt模板免费下载网seo就业指导
  • 网站备案号 查询百度自动点击器
  • 做网站用什么字体最明显郑州网站推广哪家专业
  • 一级a做爰片免费观网站看无码aso推广优化
  • 西安企业家名单标题优化怎么做
  • 宁城网站建设app推广团队
  • 网站开发和运行 法律seo知识分享
  • 专门做眼镜的网站电子商务沙盘seo关键词
  • 怎么做二维码进网站刷推广链接人数的软件
  • 做vip的网站好做吗站长工具精华
  • 重庆网站建设狐灵做一个私人网站需要多少钱
  • 网站手机网站怎么建立网站优化名词解释
  • 企业邮箱注册申请腾讯免费成都百度搜索排名优化
  • 互联网建站是什么北京seo服务商找行者seo
  • 做视频网站用什么格式重庆seo教程博客
  • 怎样进入wordpress仪表盘优化公司网站排名
  • 网站建设伍际网络免费b站推广网站
  • 摄影网站开发的意义软文网官网
  • 怎样用网站做app淘宝联盟怎么推广
  • 中国企业诚信网seo的中文是什么
  • cms管理手机网站模板seo自动排名软件
  • 关于网站建设投稿武汉网站建设公司
  • 奉化市建设局网站北京网络营销公司哪家好
  • 七宝做网站公司营销网站案例