哪家网站潍坊微信网站

news/2025/10/7 13:20:16/文章来源:
哪家网站,潍坊微信网站,500强网站建设,微营销是什么意思icoding复习 1 链表 倒数查找 1. 已知一个带有表头结点的单链表, 假设链表只给出了头指针L。在不改变链表的前提下#xff0c;请设计一个尽可能高效的算法#xff0c; 查找链表中倒数第k个位置上的结点#xff08;k为正整数#xff09;。 函数原型为#xff1a;int lnk_s…icoding复习 1 链表 倒数查找 1. 已知一个带有表头结点的单链表, 假设链表只给出了头指针L。在不改变链表的前提下请设计一个尽可能高效的算法 查找链表中倒数第k个位置上的结点k为正整数。 函数原型为int lnk_search(LinkList L, int k, ElemType* p_ele) 若查找成功函数通过指针参数 p_ele 返回该结点 data 域的值此时函数返回 1否则函数返回 0。相关定义如下 struct _lnklist{     ElemType data;     struct _lnklist *next; }; typedef struct _lnklist Node; typedef struct _lnklist *LinkList; #include #include #include list.h // 请不要删除否则检查不通过 int lnk_search(LinkList L, int k, ElemType* p_ele){     int i, length;     Node *p;               for(i 0, p L; p; i)         p p-next;              length i;     if(length 0 || length k)    return 0;          for(i 0, p L; i length - k; i)//!!取等,注意边界          p p-next;              *p_ele p-data;           return 1; } 2. 链表 合并 设线性表A(a1, a2,…,am)B(b1, b2,…,bn)试写一个按下列规则合并A、B为线性表C的算法使得 C (a1, b1,…,am, bm, bm1, …,bn) 当m≤n时 或者 C (a1, b1,…,an, bn, an1, …,am) 当mn时。 线性表A、B、C均以单链表作为存储结构且C表利用A表和B表中的结点空间构成。 注意单链表的长度值m和n均未显式存储。 函数的原型如下 void lnk_merge(LinkList A, LinkList B, LinkList C) 即将A和B合并为C其中 C 已经被初始化为空单链表 相关定义如下 //注意:线性表可以是链表  struct _lnklist{     ElemType data;     struct _lnklist *next; }; typedef struct _lnklist Node; typedef struct _lnklist *LinkList; #include #include #include list.h // 请不要删除否则检查不通过 void lnk_merge(LinkList A, LinkList B, LinkList C){     Node *p, *q, *c;     bool flag true;//小写!python大写首字母 不用包含bool头文件           c C;//c尾指针      p A-next;     q B-next;          while(p q){         if(flag){             c-next p;             c p;             p p-next;             flag false;         }          else{             c-next q;             c q;             q q-next;             flag true;         }     }          if(p)         c-next p;     else         c-next q;              free(A);     free(B);//!! } 3. 顺序表 删除指定范围 设计一个高效的算法从顺序表L中删除所有值介于x和y之间(包括x和y)的所有元素假设yx 要求时间复杂度为O(n)空间复杂度为O(1)。 函数原型如下 void del_x2y(SeqList *L, ElemType x, ElemType y); 相关定义如下 struct _seqlist{     ElemType elem[MAXSIZE];     int last; }; typedef struct _seqlist SeqList; #include list.h // 请不要删除否则检查不通过 #include #include void del_x2y(SeqList *L, ElemType x, ElemType y){     int i, j 0;           for(i 0; i L-last; i){         if(L-elem[i] x || L-elem[i] y)             L-elem[j] L-elem[i];     L-last j - 1;//不用设置delta增量记录删除的数量  } 4. 链表 删除范围内结点 已知线性表中的元素整数以值递增有序排列并以单链表作存储结构。 试写一高效算法删除表中所有大于mink且小于maxk的元素若表中存在这样的元素 分析你的算法的时间复杂度。 链表结点定义如下 struct _lnklist{     ElemType data;     struct _lnklist *next; }; typedef struct _lnklist Node;//结构标记  typedef struct _lnklist *LinkList;//!!  函数原型如下 void lnk_del_x2y(LinkList L, ElemType mink, ElemType maxk) #include list.h // 请不要删除否则检查不通过 #include #include void lnk_del_x2y(LinkList L, ElemType mink, ElemType maxk){     Node *p, *temp;          for(p L-next; p; p p-next){         if(p-data maxk p-data mink){             temp p;             p p-next;             free(p);         }         if(p-data maxk)             break;     } } //解法2为指针跟踪技术  void lnk_del_x2y(LinkList L, ElemType mink, ElemType maxk) {     Node *p, *pre;     pre L;     p L-next;     for (; p;) {         if (p-data mink p-data maxk) {             pre-next p-next;             free(p);             p pre-next; } else {             pre p;             p p-next;         }     } } 5. 顺序表 删除重复 编写算法在一非递减的顺序表L中删除所有值相等的多余元素。 要求时间复杂度为O(n)空间复杂度为O(1)。 函数原型如下 void del_dupnum(SeqList *L) 相关定义如下 struct _seqlist{     ElemType elem[MAXSIZE];     int last; }; typedef struct _seqlist SeqList; #include list.h // 请不要删除否则检查不通过 #include #include //这里是线性表中的顺序表,不是链表!  void del_dupnum(SeqList *L){     int i, j 0, delta 0;     //一次遍历达到时间复杂度      for(i 0; i L-last; i){         if(L-elem[i] ! L-elem[i1])             L-elem[j] L-elem[i];         else             delta;     }          L-last - delta; } //解法2 不用设置delta增量  void del_dupnum(SeqList* L) {     int i, j 1;     for (i 1; i L-last; i) {         if (L-elem[i] ! L-elem[i - 1]) {             L-elem[j] L-elem[i];         }     }     L-last j - 1; } 6. 顺序表 数据调整 已知顺序表L中的数据元素类型为int。设计算法将其调整为左右两部分 左边的元素即排在前面的均为奇数右边所有元素即排在后面的均为偶数 并要求算法的时间复杂度为O(n),空间复杂度为O1。 函数原型如下 void odd_even(SeqList *L); 相关定义如下 struct _seqlist{     ElemType elem[MAXSIZE];     int last; }; typedef struct _seqlist SeqList; #include list.h // 请不要删除否则检查不通过 #include #include #define N 2  //题目描述不清晰 //偶数内部排序顺序未知  void odd_even(SeqList *L){     int i, j;     int x;          for(i 0, j 0; i L-last i 1 ! L-last - j; i){     //for的另一种写法for (i 0, j 0; i L-last - j; i) {          if(!(L-elem[i] % N)){//偶数              x L-elem[L-last-j];             L-elem[L-last-j] L-elem[i];             L-elem[i] x;             i--;             j;         }     } }   icoding复习2  1. 栈 后缀表达式计算 (1)如果是操作数直接入栈 (2)如果是操作符op连续出栈两次得到操作数x 和 y,计算 x op y并将结果入栈。 #define Stack_Size 50 typedef struct{     ElemType elem[Stack_Size];     int top; }Stack; bool push(Stack* S, ElemType x); bool pop(Stack* S, ElemType *x); void init_stack(Stack *S); 其中栈初始化的实现为 void init_stack(Stack *S){     S-top -1; } 需要完成的函数定义为int compute_reverse_polish_notation(char *str); 函数接收一个字符指针该指针指向一个字符串形式的后缀表达式函数返回该表达式的计算结果。 #include #include #include list.h // 请不要删除否则检查不通过 //字符指针!!!!!!!!!!!! //易错  int compute_reverse_polish_notation(char* str)//光秃秃的*str 怎么用要知道  {     int i 0;     Stack S;     //没必要*S      init_stack(S);     ElemType _push, num1, num2;          //str[i]等价于*(stri)      while (str[i] ! \0) {     //    先判空 再判空格 再判数字和符号 数字判断是几位数          if (str[i] ! ) {                          if (str[i] 0 str[i] 9) { //!!                 _push 0;                                  while (str[i] ! ) {                     _push * 10;                     _push (str[i] - 0);                      //一个数字一个数字的压入 , 判断位数                      i;                 }                 push(S, _push);                 //每次_push会变, push函数里面top会                 //切记              } else {                 //格外小心弹出来的顺序                 //先弹出来的符号对它作用                  pop(S, num2);                 pop(S, num1);             switch (str[i]) {                 case : {                     num1 num2;//注意两个操作数的顺序                      break;//!!!!!                 }                 case -: {                     num1 - num2;                     break;                 }                 case *: {                     num1 * num2;                     break;                 }                 case /: {                     if(num2)//判除数                          num1 / num2;                     break;                 }                 case %: {                     if(num2)                          num1 % num2;                     break;                 }             }             push(S, num1);             }         }         i;     }     pop(S, num1);     //最后的返回值也要弹出来      return num1; } 2. 队列 循环链表表示队列 假设以带头结点的循环链表表示队列并且只设一个指针指向队尾元素结点注意不设头指针请完成下列任务 1: 队列初始化成功返回真否则返回假 bool init_queue(LinkQueue *LQ); 2: 入队列成功返回真否则返回假 bool enter_queue(LinkQueue *LQ, ElemType x); 3: 出队列成功返回真且*x为出队的值否则返回假 bool leave_queue(LinkQueue *LQ, ElemType *x); typedef struct _QueueNode {     ElemType data;          /*数据域*/     struct _QueueNode *next;      /*指针域*/ }LinkQueueNode, *LinkQueue; #include #include #include list.h // 请不要删除否则检查不通过 bool init_queue(LinkQueue *LQ){          //注意这里是给*LQ分配空间,不是LQ; 类比Node *p对于p的空间分配      if(!(*LQ (LinkQueue)malloc(sizeof(LinkQueueNode)))) return false;          (*LQ)-next *LQ;     return true; } //!!! bool enter_queue(LinkQueue *LQ, ElemType x){     LinkQueueNode *p;          if(!(p (LinkQueueNode *)malloc(sizeof(LinkQueueNode)))) return false;          p-data x;     //LQ为队尾指针     //这一步顺序不要颠倒,循环队列连接到头结点      p-next (*LQ)-next;     //尾插入      (*LQ)-next p;     *LQ p;           return true;  }    //!!! bool leave_queue(LinkQueue* LQ, ElemType* x) {     LinkQueueNode *first, *p;     //first为头结点      first (*LQ)-next;     if (first *LQ)         return false;     //注意的是头节点为空, 并且是自然形成的          p first-next;     *x p-data;     if (p ! *LQ) //这种情况只有一个尾结点可以释放         first-next p-next;     else {//!!!         *LQ (*LQ)-next;//LQ变为头结点,尾指针指向头结点          (*LQ)-next *LQ; //自己构成空循环     }     free(p);     return true; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XMind 2025 破解版下载及安装使用教程

XMind 2025 破解版下载及安装使用教程XMind 2025是一款风靡全球的头脑风暴和思维导图软件,为激发灵感和创意而生。 在国内使用广泛,拥有强大的功能,包括思维管理、商务演示、与办公软件协同工作等功能。XMind中文版…

Xmind Pro v24 最新破解版下载及激活教程

Xmind Pro v24 最新破解版下载及激活教程Xmind 应该是目前最好用的一款思维导图软件了。拥有优秀的用户体验,凭借简单易用,功能强大的特点,XMind在2013年被著名互联网媒体Lifehacker评选为全球最受欢迎的思维导图软…

二分图最大匹配 Dinic/EK算法

方法 二分图转换成网络流模型;创建虚拟源点和汇点,将源点连上左边所有点,右边所有点连上汇点,容量皆为1。原来的每条边从左往右连边,容量也皆为1,最大流即最大匹配。code:洛谷P3386 dinic: #include<bits/std…

基本Dos指令

基本的Dos指令 打开命令提示符窗口的方式 正常打开方式Win+R 在输入框中输入cmd 回车(推荐)在开始菜单中搜索cmd 选中cmd双击打开在资源管理器地址栏右键输入cmd 回车任意文件目录下,shift+鼠标右键选择用powershel…

2025 年酒店一次性用品源头厂家最新推荐排行榜:含牙签牙线筷子套杯盖杯垫杯套外卖筷子印刷房卡套信封用品优质供应商盘点

在酒店行业竞争日益激烈的当下,一次性用品作为酒店服务品质的重要组成部分,其质量、配套能力及环保属性直接影响客人体验与酒店口碑。然而当前市场上,部分厂家存在质量把控不严、产品种类单一、供货效率低等问题,导…

2025餐饮一次性用品厂家最新推荐排行榜:聚焦资质口碑与产品实力,助力餐饮企业精准选品!

当前餐饮行业对一次性用品的需求持续增长,但市场乱象却让采购决策难度陡增。部分厂家缺乏合规资质,产品存在卫生不达标、材质安全隐患等问题,而餐饮企业既要满足消费者对环保与品质的高要求,又需兼顾定制化采购与成…

基于随机函数链接神经网络(RVFL)的锂电池健康状态(SOH)预测 - 指南

基于随机函数链接神经网络(RVFL)的锂电池健康状态(SOH)预测 - 指南2025-10-07 13:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: aut…

Google与华为

Google与华为A: 为何Google要跟华为作对?Q: 这是一个很好的问题。要理解“Google为何要与华为作对”,其实需要分清楚: 严格来说,不是Google主动要跟华为作对,而是因为美国政府的政策导致Google被迫与华为“切割”…

[线上故障case]vmstorage的tsid cache太小,导致 CPU 100%

[线上故障case]vmstorage的tsid cache太小,导致 CPU 100%作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客 zhihu Github 公众号:一本正经的瞎扯具体的故障细节请看:vm_slow_row_inserts_tot…

Docker 部署 PostgreSQL 数据库教程

本文详细介绍基于轩辕镜像的Docker部署PostgreSQL流程,涵盖镜像详情查看、登录验证/免登录/官方直连三种拉取方式、快速/挂载目录/docker-compose三种部署方式、结果验证步骤,及无法连接、配置持久化等常见问题的解决…

自己的网站怎么做app吗安徽建设相关网站

在国内&#xff0c;我认为Go语言会成为未来的主流&#xff0c;因为国内程序员号称码农&#xff0c;比较适合搬砖&#xff0c;而Rust对心智要求太高了&#xff0c;不适合搬砖。 就个人经验来看&#xff0c;Go语言简单&#xff0c;下限低&#xff0c;没有什么心智成本&#xff0c…

2025年软件外包平台解析:10个不同定位的真实情况

市面上的软件外包平台数量庞大,定位、规则、收费方式差异很大。有的平台主打低门槛,有的平台强调专业筛选,有的则偏向国际市场。对于想要接触外包工作的开发者来说,选对平台比盲目跟风更重要。 本文整理了 10 个具…

P3574 题解 | 贪心,树形 dp

传送门 题意 给出一颗树,根为 1 号节点,点有点权 \(a\),求从根出发一条遍历每条边恰好两次的路径,使得以下式子最小: 记 \(t_i\) 为第一次到达一个点时走过的路径条数,特别地 \(t_1 = 2 \times n - 2\)(最后回到…

注册账号自建网站高端建筑铝型材

unittest是python自带的单元测试框架&#xff0c;它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作&#xff0c;使得单元测试易于开展&#xff0c;因为它的易用性&#xff0c;很多同学也拿它来做功能测试和接口测试&#xff0c;只需简单开发一些功能&#xff08;…

怎么创建公司的个人网站ps做的网站

在实现播放器的时候&#xff0c;我们需要捕获键盘、鼠标事件进行视频快进、快退&#xff0c;或者双击全屏/退出全屏窗口、鼠标右键弹出菜单栏。默认情况下&#xff0c;在使用libVLC库的时候&#xff0c;我们无法捕获这些事件&#xff0c;因为我们将Qt的视频窗口传递给了libVLC。…

简单工厂模式 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

1.springmvc基础入门(一) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

爱,在行动中生长,我们因爱而变得辽阔——《岛上书店》读后感

看完了《岛上书店》,合上书最想说的就是:这书真好看。不是那种需要正襟危坐才能读下去的“大作”,更像是在一个闲适的下午,听朋友娓娓道来一个发生在小岛上的,关于一群普通人如何因为书与爱而彼此牵连的故事。 全…

杭州做商务网站网站建设企业实践总结

Windows Server 2012学习 用windows系统来架构网络&#xff0c;以便将资源共享给网络上的用户。 windows的网络架构大致可以分为工作组&#xff08;workgroup&#xff09;架构&#xff0c;域&#xff08;domain&#xff09;架构与前两者的混合架构。 一、工作组架构为分布式…

做网站的流程视频教程网站开发设计课程

题目 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10 ​100。 输出格式&#xff1a; 在一行内输出 n 的各位数字之和…