数据结构复习1new

数据结构复习1new

ID:34527440

大小:224.96 KB

页数:18页

时间:2019-03-07

数据结构复习1new_第1页
数据结构复习1new_第2页
数据结构复习1new_第3页
数据结构复习1new_第4页
数据结构复习1new_第5页
资源描述:

《数据结构复习1new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、小谈数据结构的复习方法李震数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间相互关系和操作等的学科,也是我们电子信息类专业大平台必修课,所以我们很有必要把这门功课学习好,下面我就浅谈一下我对这么课的理解以及我对这门课的学习、复习方法。学习数据结构我们首先要了解数据的逻辑结构,下面是我总结的数据的逻辑结构图,有了这个图我们就能清楚地明白我们究竟要学什么,学了什么。从上图中,根据教学要求,我们只须掌握线性结构中线性表、栈、队列,以及非线性结构中树与二叉树的基本操作。我就先从线性表开始介绍,一般线性表分为顺序表和链表,顺序表相对简单,最重要的是明白顺序表的本质就

2、是开辟一个连续的存储空间来存储你录入的数据,其实也可以把顺序表想像成数组,功能大致相同,相信大家对数组操作都很熟悉,在此就不多介绍,然后就是会简单的几个函数操作,分别是初始化InitList_Sq(),插入ListInsert_Sq(),删除ListDelete_Sq(),合并MergeList()等,书上均有算法,大家可以仔细看看;接下来是链表,链表比顺序表稍微复杂些,加上一些指针的操作,只要C语言过关,应该也很好理解,下面就我自己编的一个链表讲解,可能更容易理解一些。#include#includetypedefintstatus;#d

3、efineERRORO#defineOK1typedefstructLNode{intdata;//链表的数据域LNode*next;//链表的指针域}LNode,*Linklist;//定义一个链表statusCreatelist_L(Linklist&L,intn)//产生链表{L=(Linklist)malloc(sizeof(LNode));//给头指针分配内存L->next=NULL;//头指针指向空,构建一个空链表完成LNode*p;for(inti=0;i

4、p->data));p->next=L->next;L->next=p;}//逆序将数据录入链表中returnOK;}voidMergeList_L(LinklistLA,LinklistLB)//将A,B两个链表中相同的数据输出{LNode*pa,*pb,*temp=LA;inti=0;pa=LA->next;pb=LB->next;while(pa&&pb){if(pa->data==pb->data)//寻找A,B交集{temp->data=pa->data;//将相同元素存储在临时链表里面temp->next=newLNode;//构建临时链表此处new相当malloc

5、(new为C++语句)temp=temp->next;i++;//计数器,记录相同数据的个数pa=pa->next;pb=pb->next;}elseif(pa->data>pb->data)pa=pa->next;elsepb=pb->next;}temp=LA;//将临时链表覆盖A链表if(i==0)printf("A∩B=空集");printf("A∩B=");for(intj=1;j<=i;j++){printf("%dt",temp->data);temp=temp->next;}//输出交集printf("");}voidmain(){LinklistLA,L

6、B;intm,n;printf("请输入LA长度:");scanf("%d",&m);printf("请输入LA:");Createlist_L(LA,m);printf("请输入LB长度:");scanf("%d",&n);printf("请输入LB:");Createlist_L(LB,n);MergeList_L(LA,LB);}大家可以运行这个程序试试,体会一下程序中链表操作一个个指向下一个过程,自己试着运行一下,也可以把我的程序进行改进,将这个只能找整型的交集,改为能找字符型的交集,,那么链表就学的差不多了,这个看懂了,之后再理解书上的对链表的简单操作,如GetEle

7、m_L(),ListInsert_L(),ListDelete_L()等等,在此不再赘述,书上很详细,大家仔细理解。接下来是循环链表,由于书上未给出如何构建循环链表的算法,我就将我用C++编的给出,大家可以尝试改成C语言版的。structpeople{intname;people*next;};VoidInit_CirLinkList(){intn;people*now;people*Next;people*last;printf("请输入数据个数n:");while(cin>>n)){no

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。