单链表基本操作与回文判断.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单链表基本操作与回文判断

实验一单链表的基本操作一.要求:(1)依次从键盘读入数据,建立带头结点的单链表; (2)输出单链表中的数据元素(3)求单链表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。 二:算法设计:用到的结构:逻辑结构(循环结构,条件结构,顺序结构) 存储结构(线性单链表)算法设计思路:首先利用尾插发创建一个单链表status createlist(LinkList L)然后通过void print(LinkList L)方法输出,通过int ListLength(LinkList L)方法得到链表的长度,通过char GetElem(LinkList L,int i)方法,当第i个元素存在时,其值赋给e并返回,然后通过status ListInsert(LinkList L,int i,ElemType e) 在头结点单链线性表L中第i个位置之前插入元素e,最后通过status ListDelete(LinkList L,int i) 删除L中第i个元素,并用e返回其值。三:调试和测试:调试过程总结:这些是对但链表的基本操作,算是对单链表的总结。C++不同于java,需要定义如OK,false等。还有有的包没有正确的引入。三组测试数据及实验结果: 第一组:测试ascxzbn 第二组:测试dbcmgkfko 第三组:测试oehfdklsdjsk 实验二回文判断一实验要求:(1)数据从键盘读入;(2)输出要判断的字符串; (3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。二:算法设计:(1)用到的结构:逻辑结构(循环结构,条件结构,顺序结构) 存储结构(链式栈)(2)算法设计思路:先创建一个栈的大小为100,然后用void InitStack( SeqStack *S)方法初始化一个空栈,紧接着用int EmptyStack(SeqStack *S)还有int FullStack (SeqStack *S)分别判断栈是空还是满。如果栈空则没有测试的必要,如果栈满则没办法往里面输入。紧接着void Push (SeqStack *S , char x)入栈,出栈char Pop(SeqStack *S),先将一般的字母入栈,然后进行遍历,每弹出一个字符就进行相应字符的比较。如果相等则返回1不相等返回0.三:调试和测试:(1)调试过程总结:自己对这个算法不太熟悉,然后主要是从网上查看,还有问一些学习C++的人还有询问同学。一开始只考虑栈空的问题,没有考虑栈满的问题。在测试的时候输入的太多,以至于有的没有输入进去,同时把栈的空间定义的大些,也是为了防止栈满。(2)三组测试数据及实验结果:第一组:adsas第二组:abba 实验总结:第一次做实验的时候什么也没有准备,看到实验题目的时候一头雾水,只知道是对链表还有栈的应用,不知道从哪里下手。我们学的是数据结构(C语言版),C语言是大一上学期学的,现在我们已经是大二下学期了,一年没学,发现什么都不记得了。就抱着数据结构课本在那里看,老师说这些算法没一个能运行出来的,自己也不记得main()函数怎么写了。连hello world也写不出来了。于是那一节就那么过去了。课下的时候就上网搜了一下,还看了下C语言课本,最后在同学的帮助下,第一个程序写完了。有了这一次的经验,在第二次上机之前就提前把实验看了下,自己也写了个大概,等上机的时候就主要是调试了。同样遇到问题的时候,还是同学帮忙解决了。在调试的时候还是需要耐心,有的时候就那么一个错误,可是怎么也找不到,于是就放下不想写了,不过作业始终要完成的,就硬着头皮在哪里找。通过这两次实验,我知道了,在学习新知识的时候还要把原来的知识捡起来。不能捡了西瓜就丢了芝麻。这本书也是考研专用的。现在还不确定自己是否要考研,不管怎样,都要学好。 附录:源程序实验一源代码:#define OK 1#define ERROR 0#include iostream.h#include stdio.htypedef char ElemType;typedef int status;typedef struct LNode{ ElemType data; LNode *next;}LNode,*LinkList;status createlist(LinkList L) {//尾插法创建单链表 char ch; L=new LNode; L-next=NULL; cinch; LinkList r=L; while(c

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档