数据结构习题24/12/24

这篇具有很好参考价值的文章主要介绍了数据结构习题24/12/24。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据结构习题24/12/24
这道题目可以考虑,如果前缀是一样的长度,那么只需要两个链表同时向后检索,直到找到一样的元素为止。所以应该先找到两个链表的长度,然后将较长的一个链表的多出来的前缀部分删掉,也就不去看这一部分。因为后缀都是一样的,所以长度的差异只可能来自前缀。
解决代码:

typedef struct Node{
    char data;
    struct Node *next;
}SNode;

int listlen(SNode *head){
    int len=0;
    while(head->next!=NULL){
        len++;
        head=head->next;
    }
    return len;
}

SNode* find_addr(SNode *str1,SNode *str2){
    int m,n;
    m=listlen(str1);
    n=listlen(str2);
    SNode *p,*q;
    for(p=str1;m>n;m--)
        p=p->next;
    for(q=str2;n>m;n--)
        q=q->next;
    while (p->next!=NULL&&p->next!=q->next)
    {
        p=p->next;
        q=q->next;
    }
    return p->next;
    
}

数据结构习题24/12/24
这个问题关键在于每次都需要回到链表的最后进行操作,所以不妨把整个两边平分为前后两部分,将后面整个逆转,变成两个链表。再将后面部分的链表依次插入到前面部分的链表中。

void change_list(SNode *h){
    SNode *p,*q,*r,*s;
    p=q=h;
    while(q->next!=NULL){
        p=p->next;
        q=q->next;
        if(q->next!=null) q=q->next;
    }
    q=p->next;
    p->next=NULL;
    while (q!=NULL)
    {
        r=q->next;
        q->next=p->next;
        p->next=q;
        q=r;
    }
    s=h->next;
    q=p->next;
    p->next=NULL;
    while (q!=NULL)
    {
        r=q->next;
        q->next=s->next;
        s->next=q;
        s=q->next;
        q=r;
    }
    
    
}

本文由博客一文多发平台 OpenWrite 发布!文章来源地址https://www.toymoban.com/news/detail-760385.html

到了这里,关于数据结构习题24/12/24的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 24考研数据结构-——绪论2

    1.4.1 渐近时间复杂度 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(n),它表示随问题规模n的增大而增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的 渐近时间复杂度 ,简称时间复杂度。 大O表示“同阶”,

    2024年02月16日
    浏览(30)
  • 【C语言&&数据结构】简单题目

    ✨作者:@平凡的人1 ✨专栏:《小菜鸟爱刷题》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 为了方便自己的学习以及基于好久没更新博客的原因。特地写了这一篇博客 。💖 本篇博客是一篇记录学习篇,我将之归纳于刷题专栏。方便自己的复习以

    2023年04月08日
    浏览(37)
  • 【数据结构】栈和队列常见题目

    队列:先进先出 栈:后进先出 队列:先进先出 栈:后进先出 https://leetcode.cn/problems/valid-parentheses/ 做法:遍历字符串 1.当前字符是左括号:进栈 2.当前字符是右括号:出栈顶元素和当前字符比较是否匹配 特殊情况:如果此时栈为空,那么说明不匹配 3.最后如果栈为空,说明

    2024年02月12日
    浏览(25)
  • 【数据结构】二叉树经典题目

    相信大部分人看了题目描述之后,都会和我一样一脸的懵逼。直到我看到了一个描述才恍然大悟 分为3种情况: 左右都为空 --省略 右为空,左不为空 – 省略 左为空,右不为空–不省略 这里复习一下二叉树的前序遍历、中序遍历、和后序遍历 前序的结果是:ABDEGCF 中序的结

    2024年02月10日
    浏览(39)
  • 【数据结构】二叉树常见题目

    此乃本人自用版本,用于复习回顾! 所以部分题目不会有过大详细的解析,不懂的可以评论!笔者将竭力为你解答 满⼆叉树:如果⼀棵⼆叉树只有度为0的结点和度为2的结点,并且度为0的结点在同⼀层上,则这棵⼆叉树为满⼆叉树 高度为h的满二叉树,共有 2^h -1 个节点 完全

    2024年02月13日
    浏览(24)
  • 24考研数据结构-线性表4

    2.4.4单链表的查找操作(默认带头节点,不带头节点后续更新) 2.4.4.1 按位查找操作 GetElem(L, i): 按位查找操作,获取表L中第i个位置的元素的值; 注意: 1.边界情况 i=0,返回头节点;iL.length,返回null; 2.ji即查找到j = i 的节点,就是第i个节点。 3.平均复杂度O(n) 2.4.4.2 按值

    2024年02月16日
    浏览(27)
  • 【数据结构】链表相关题目(简单版)

    🚀write in front🚀 📜所属专栏: 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!! 关注我,关注我,关注我 , 你们将会看到更多的优质内容!!   在学完了顺序表的基本

    2024年01月19日
    浏览(37)
  • 数据结构——图解链表OJ题目

            学完了单链表之后,我们对其基本结构已经有了一定的了解,接下来我们通过一些题目强化对链表的理解,同时学习一些面试笔试题目的新思路以及加强对数据结构单链表的掌握。  目录 题目一.876. 链表的中间结点 - 力扣(LeetCode) 题目二:21. 合并两个有序链表

    2024年02月04日
    浏览(50)
  • 【数据结构】链表相关题目(中档题)

    🚀write in front🚀 📜所属专栏:初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!! 关注我,关注我,关注我 , 你们将会看到更多的优质内容!!   在前面的练习中,我们简

    2024年01月22日
    浏览(30)
  • 【数据结构】24王道考研笔记——图

    图的定义 有向图以及无向图 简单图以及多重图 度 顶点-顶点间关系 连通图、强连通图 子图 (有向图也一样) 连通分量 强连通分量 生成树 生成森林 边的权、带权网/图 特殊形态的图 总结: 邻接矩阵 存储带权图(网): 对角线处可以填0或∞ 空间复杂度为O(|V| 2 )只和顶

    2024年02月17日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包