第三小组链表讨论
• PTA题目集
4-1、删除单链表有数节点,碰到问题如下:
• 在第一个数据节点没有进行独立输入,导致答案错误。
• 建表时只申请了第一个节点的空间,对于后续节点没有向内存申请空间。
• 在完成建表后没有将最后一个数据节点的next域置为NULL,导致溢出。
• 在判断节点是否为偶数时没时对第一个数据节点为偶数时进行特殊处理导致答案错误。
解决方法:在小组讨论后,小组成员对第一个数据节点的输入进行独立操作,在建表时对节点进行内存空间申请,完成输入后将p->next域置为NULL。在删除函数里,增加一条if语句来对第一个数据节点进行判断以及操作。
源程序:

struct ListNode *createlist()
{int m,n;struct ListNode *p,*s,*head;head=(struct ListNode*)malloc(sizeof(struct ListNode));head->next=NULL;scanf("%d",&m);if(m!=-1){head->data=m;p=head;}else return 0;scanf("%d",&m);while(m!=-1){s=(struct ListNode*)malloc(sizeof(struct ListNode));s->data=m;p->next=s;p=s;        scanf("%d",&m);}p->next=NULL;return head;
}
struct ListNode *deleteeven(struct  ListNode *head)
{struct ListNode *p,*q,*lastNode=NULL;p=q=head;while(p!=NULL){if(p->data%2==0){if(p==head){head=p->next;q=head;free(p);}else{q=p->next;free(p);}}else{lastNode=p;q=p->next;}if(lastNode!=NULL)lastNode->next=p=q;else p=q;}return head;
}

4-2链表逆置,碰到的问题如下:
• 仍然有成员犯了4-1中建表的错误。
• 将建表函数放入答案中,导致编译过不了。。
• 重构链表时将新表建为带有头节点的链表,与题目所给的打印函数不符合,导致输出了头节点的地址。
解决方法:(1)(2)略,经过小组讨论后,建一个不带头节点的链表来解决输出头节点地址的问题。或者直接对链表进行操作,使链表指针一一发生转向来实现逆置。
源程序:

struct ListNode *reverse( struct    ListNode *head )
{struct ListNode *p,*q,*r;p=head;q=NULL;r=NULL;while(p){q=p->next;p->next=r;r=p;p=q; }return r;
}

4-4求链表的倒数第m个元素,碰到的问题如下:
• 本题为有带头节点的链表,操作时没有将L移动到第一个数据节点上。
• 在统计链表中数据节点的个数时将计数变量置为1,导致后续计算所求元素位置时出现逻辑错误。
• 在统计完数据节点个数后没有将指针重新指向第一个数据节点。
• 没看清题目,返回了一个指针。
解决方法:经过小组讨论将L移动到第一个数据节点上,将计数变量的初值置为0,在统计完数据节点个数后将指针重新指向第一个数据节点,返回所求数据元素。
源程序:

ElementType Find(List L,int m)
{List p,q;int i=0,j=0,e;p=L;q=L;p=p->Next;while(p){i++;p=p->Next;}p=q;p=p->Next;while(j<i-m&&p!=NULL){j++;p=p->Next;}if(p==NULL)return ERROR;else{e=p->Data;return e;}
}

5-5两个有序链表序列的合并碰到的问题
• 部分成员在建表时建了有带头点的链表,导致链表合并时出现了错误。
• 打印时题目要求结尾没有多余的空格,没有进行特殊处理,导致错误。
• 没有对空链表进行处理
解决方法:建表时采用不带头节点的链表,避免没必要的麻烦。对最后一个节点打印进行独立操作。并对空链表这种情况进行处理。
源程序:

#include<stdio.h>
#include<stdlib.h>
typedef struct List
{int data;struct List *next;
} List;
List *createlist();
void printflist(List *pre);
List *sort(List *head);
List *add(List *L1,List *L2);
int main()
{List *L1,*L2,*L3,*L;
L1=createlist();
L2=createlist();
L3=add(L1,L2);
L=sort(L3);
printflist(L) ;
}
List *createlist()
{List *L,*p,*q;L=(List*)malloc(sizeof(List*));L->next=NULL;p=L;int m;scanf("%d",&m);if(m!=-1){L->data=m;p=L;}   else return 0;scanf("%d",&m);while(m!=-1){q=(List*)malloc(sizeof(List*));q->data=m;p->next=q;p=q;scanf("%d",&m);}p->next=NULL;return L;
}
List *add(List *L1,List *L2)
{List *p,*q,*pre,*r;p=L1->next;pre=L1;q=L2;r=pre;while(p!=NULL){pre->next=p;pre=pre->next;p=p->next;  }   while(q!=NULL){pre->next=q;pre=pre->next;q=q->next;}   pre->next=NULL;return r;
}
void printflist(List *L)
{while(L){if(L->next!=NULL){printf("%d ",L->data);}elseprintf("%d",L->data);L=L->next;}
}
List *sort(List *head)
{List *p,*pre,*q;p=head->next->next;head->next->next=NULL;while(p!=NULL){q=p->next;pre=head;while(pre->next!=NULL&&pre->next->data<p->data)pre=pre->next;p->next=pre->next;pre->next=p;p=q;   } return head;
}

转载于:https://www.cnblogs.com/DedSec/p/6551196.html

关于链表的讨论报告-第三小组相关推荐

  1. 教学质量分析系统 php,教学质量分析报告【三篇】

    [导语]分析报告的标题一般有两种形式:一是公文式,另一种是新闻报道式.以下是无忧考网整理的教学质量分析报告,欢迎阅读! 篇一 今天,我们在这里召开全校2010--2011学年第二学期教学质量分析会,主 ...

  2. 计算机科学讨论,第七章计算机科学讨论报告

    计算机科学基础讨论报告 -- 数据库查询语言的SQL的基本特点与作用 SQL的全称是结构化查询语言,已经成为关系型数据库的标准语言. 通过定义可以知道SQL语言的几项基本属性.它的本质是语言,作用是数 ...

  3. 2018云计算开源产业大会将发布四大报告、三项评估结果

    在2018年3月21日-22日召开的"2018云计算开源产业大会(全球云计算开源大会)"上,中国信息通信研究院将发布<中国私有云发展调查报告>.<中国云计算开源发 ...

  4. (Adventure项目)自行车业务数据分析报告(三)

    (Adventure项目)自行车业务数据分析报告(三) 项目背景 Adventure Works Cycles是Adventure Works样本数据库所虚构的公司,这是一家大型跨国制造公司.该公司生 ...

  5. 区块链技术与应用实验报告(实验三)

    文章目录 区块链技术与应用实验报告(实验三) 关于作者 作者介绍 一.实验目的 二.实验原理简介 三.实验环境 四.实验步骤 1.链状态 2.区块状态 3.交易状态 4.账户状态 练习题 总结 区块链 ...

  6. C语言实验上机报告第三版,c语言上机报告[实验三].doc

    c语言上机报告[实验三].doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...

  7. 中国职业教育政策解读 | 职业教育系列报告(三)

    回望创投圈的2019,"资本寒冬"可谓是贯穿始终的重要关键词之一.然而随着1993年以来的第四波政策红利,职业教育赛道被众多教育领域投资者及产业端赋予重望,有望成为下一个" ...

  8. 计算机结构实验三,计算机体系结构实验报告——实验三.pdf

    计算机体系结构实验报告--实验三 1.实验目的: 通过实验,熟练掌握WINDLX 的操作方法,特别注意在单步执行WinDLX程序中,流水线 中指令的节拍数. 2.实验内容: (1) 用WinDLX模拟 ...

  9. 信息论与编码matlab实验报告,信息论实验报告(实验三、香农编码)

    <信息论实验报告(实验三.香农编码)>由会员分享,可在线阅读,更多相关<信息论实验报告(实验三.香农编码)(3页珍藏版)>请在人人文库网上搜索. 1.学生实验报告院别电子工程学 ...

  10. 实训报告html前端开发,web前端开发技术实验报告 实验三.doc

    web前端开发技术实验报告 实验三.doc (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分  长 春 大 学 20 15 - 20 ...

最新文章

  1. MySQL replace()函数的使用
  2. 新的一年,,,新的生活
  3. MVC通过ViewBag动态生成Html输出到View
  4. 导航狗IT周报-2018年05月18日
  5. 《基于张量网络的机器学习入门》学习笔记6
  6. COCO 数据集格式及mmdetection中的转换方法
  7. Spring自学日志02(对象的创建,依赖注入)
  8. 股票涨停之后该不该卖?
  9. 2021-2025年中国电动陶瓷球阀行业市场供需与战略研究报告
  10. vim编辑器操作汇总
  11. SylixOS 内存管理源代码分析--pageTable.c
  12. 梦幻群侠传5帮派修炼_梦幻群侠传5手游下载
  13. hp打印机没有右键扫描_win10打印机右键没有‘开始扫描’的修复办法
  14. 无线局域网和蜂窝移动网络_手机连上无线网络后,应不应该关掉移动数据?
  15. PositiveUnlabeled Data Learning——第四弹(Semi-Supervised Classification/AUC Optimization)
  16. 计算机各部分名称ppt,PowerPoint软件界面各部分名称(PPT2010/2013/2016)
  17. java media player 设置音量_SoundPlayer可调音量 - c#
  18. Xtrareport 多栏报表
  19. 惊呆!美国向黑客支付了500万美元赎金!
  20. 操作系统第五章笔记---线程

热门文章

  1. base64解密方法
  2. 一篇文章“简单”认识《生成对抗网络》(GAN)
  3. LeetCode,无它,唯手熟尔(一)
  4. “三权分立”模型之角色模型
  5. 佛法在世间不离世间觉离世求佛法犹如觅兔角
  6. ESL-chapter6 核密度估计和分类
  7. IGV web 工具部署
  8. QQ会员注册完整代码
  9. 基于32feet.net对Broadcom(Widcomm)
  10. 微信小程序tarBar使用