ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:56.09KB ,
资源ID:10581452      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10581452.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(线性链表二叉树的C语言实现.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

线性链表二叉树的C语言实现.docx

1、线性链表二叉树的C语言实现目录目录 1线性链表的基本操作 2设计题目 2设计目的 2设计内容和要求 2数据结构及算法设计的思想 2数据结构及算法设计 3线性链表功能详细介绍 5二叉树的基本操作 7设计题目 7设计目的 7设计内容和要求 7数据结构及算法设计思想 7数据结构及算法设计 8二叉树功能详细介绍 9心得体会 11线性链表的基本操作设计题目 链表的基本操作设计目的1掌握线性链表的建立。 2掌握线性链表的基本操作。设计内容和要求利用链表的插入运算建立线性链表,然后实现链表的查找、插入、删除、计数、输出、排序、逆置等运算(查找、插入、删除、查找、计数、输出、排序、逆置要单独写成函数),并能在

2、屏幕上输出操作前后的结果。数据结构及算法设计的思想1、线性表的逻辑结构特征:总存在第一个元素和最后一个元素;除第一个元素外,每一个元素都有唯一的直接前驱元素;除最后一个个元素外,每一个元素都有唯一的直接后继元素。2、线性链表的特点:在单链表中,任何两个元素的存储位置之间没有固定的联系3、线性链表的存储结构特点:1)用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以不是连续的)2)插入和删除操作时要修改结点中的指针域。3)用线性链表表示线性表时,数据元素之间的逻辑关系是有结点中的指针指示的,换句话说,指针为数据元素之间的逻辑元素之间的逻辑关系的映像,则逻辑上相邻的两个数据

3、元素其存储物理位置不要求紧邻,由此,这种存储结构为非顺序映像或链式映像。4、线性链表的存取必须从头指针开始,头指针指示链表中第一个结点的存储位置;由于最后一个元素没有直接后继,则线性链表中最后一个结点的指针为“空”(NULL)。数据结构及算法设计1、 定义线性链表的单链表存储结构struct LinkList int data; struct LinkList *next;typedef struct LinkList LNode;typedef LNode *Link;2、 读取输入数据并建以此建立线性链表int LinkList(LNode *head,int n) LNode *newh

4、ead; int i; int d; newhead=(Link) malloc (sizeof(LNode); head=newhead; for(i=0;idata=d; newhead-next=(Link) malloc (sizeof(LNode); if(i=n-1) newhead-next=NULL; else newhead=newhead-next; return head;3、 线性链表的插入void LinkListInsert(LNode *head) LNode *ptr=head,*ptr2; int p; int e; int i; LNode *s; prin

5、tf(Please Input the positon :n); scanf(%d,&p); printf(Please Input the element :n); scanf(%d,&e); s=(Link) malloc (sizeof(LNode); s-data=e; for (i=1;inext; ptr2=ptr-next; s-next=ptr2; ptr-next=s; 4、 链表中元素的删除:读取输入的整数i并删除该位置的元素void Delete(LNode *head) LNode *ptr=head,*ptr2; int i,delPosition; printf(P

6、lease input the positon :n); scanf(%d,&delPosition); for (i=2;inext; ptr2=ptr-next; ptr-next=ptr2-next; free(ptr2); 5、 查找元素在链表中的位置void GetLinkList(LNode *head) LNode *ptr1=head; int findElem; int i=0; printf (Please input the element:); scanf(%d,&findElem); while (ptr1) if(ptr1-data!=findElem) ptr1=

7、ptr1-next; i+; else goto LOOP; LOOP: if(ptr1-data=findElem) printf(nThe locaton is %d.n,i+1); else printf(n Have not find the %d in the linear list.n,findElem);6、 计数:统计线性链表中元素的个数并输出void count (LNode *head) int i=0; LNode *ptr=head; while (ptr) ptr=ptr-next; i+; printf(There are(is) %d elem(s) in Lin

8、klist.n,i); 线性链表功能详细介绍(1)本程序包含6种功能,分别为:建立线性链表、插入、统计线性链表中元素个数、删除、查找、输出(2)选择功能1为建立线性链表 下图为建立线性链表包含4个元素,分别为1、2、3、4(3)功能2为在位置i插入元素图为在位置3插入元素5(4)功能3为删除位置i的元素下图为删除位置2上的元素(5)功能4为查找元素查找元素5在线性链表中的位置(6)功能6为计数即统计线性链表中元素的个数(7)功能5为输出线性链表中的元素线性链表(1、2、3、4)删除2并在位置3插入元素后的线性链表如图所示:二叉树的基本操作设计题目二叉树的建立与遍历设计目的1掌握二叉树的概念和性

9、质 2. 掌握任意二叉树存储结构 3掌握任意二叉树的基本操作设计内容和要求对任意给定的二叉树(顶点数自定)建立它的二叉链表存储结构,并实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。数据结构及算法设计思想1、 二叉树的特点:二叉树是一种树形结构,它的特点是每个结点至多只有两棵子树,并且二叉树的子树有左右之分,其次序不能任意颠倒2、 二叉树的存储结构:包括顺序存储结构、链式存储结构3、 二叉树的遍历:a、 先序遍历二叉树:(1) 访问根节点;(2) 先序遍历左子树;(3) 先序遍历右子树;b、 中序遍历二叉树:(1) 中序遍历左子树;(2) 访问根节点;(3) 中序遍历右子树;c、 后

10、序遍历二叉树:(1) 后序遍历左子树;(2) 后序遍历右子树;(3) 访问根节点;数据结构及算法设计1、 建立二叉树BT *createbt(void)BT *q;struct nodel *s30;int j,i,x;printf(Build a Tree(end by (0,$)n);printf();printf(i,x=);scanf(%d,%c,&i,&x);while(i!=0&x!=$)q=(BT*)malloc(sizeof(BT); /* 开辟存储空间 */q-data=x;q-lchild=NULL;q-rchild=NULL;si=q;if(i!=1)j=i/2;if(i

11、%2=0) sj-lchild=q;else sj-rchild=q;printf(i,x=);scanf(%d,%c,&i,&x);return s1;2、 先序遍历二叉树void dlr_order(BT *bt)if(bt!=NULL) printf(%c ,bt-data); dlr_order(bt-lchild); dlr_order(bt-rchild);3、中序遍历二叉树void ldr_order(BT *bt)if(bt!=NULL) ldr_order(bt-lchild); printf(%c ,bt-data); ldr_order(bt-rchild);4、后序遍历

12、二叉树void lrd_order(BT *bt)if(bt!=NULL) ldr_order(bt-lchild); ldr_order(bt-rchild); printf(%c ,bt-data);二叉树功能详细介绍1、 建立二叉树分别输入(位置,数据)以(0,$)结束如图所示建立元素为235#8的二叉数2、 功能1先序遍历二叉树输入1继续3、 功能2中序遍历二叉树输入1继续4、 后序遍历二叉树输入0关闭窗口程序结束心得体会经过一周的实训我对数据结构这门课程有了更加深刻的了解。通过查找资料解决的不少课堂学习中有疑问的地方。同时在编辑程序过程中通过对每一个函数的琢磨、调试、修改加深了对于C语言的掌握。对熟悉的知识加深印象,对容易出错的地方提高警惕,从而使原本简单的程序变得复杂,机械的操作变得熟练。并在程序全部可以运行后又尝试着修改代码以寻求新的方法。只有多动手操作,才知道结果,才有创新的念头,只看课本,只掌握书上的内容是远远不够的。阅读他人编写的代码,多动手、勤动脑是学习计算机只是的捷径。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2