pascal数据结构及其应用

pascal数据结构及其应用

ID:14276251

大小:116.50 KB

页数:14页

时间:2018-07-27

pascal数据结构及其应用_第1页
pascal数据结构及其应用_第2页
pascal数据结构及其应用_第3页
pascal数据结构及其应用_第4页
pascal数据结构及其应用_第5页
资源描述:

《pascal数据结构及其应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第七章 数据结构及其应用数字,字符,声音,图像,表格等信息,均可输入计算机中进行处理。在计算机科学中,象这种能输入到计算机中并被计算机程序处理的信息,都可称为数据。    数据的基本单位是数据元素。数据之间存在有线性与非线性两种基本的逻辑结构,同时在存储结构上还有顺序和链式之分。    数据结构则是研究数据元素的逻辑结构,存储结构和与之有关的各种基本操作的一门学科。作为一个程序设计者,应当掌握好数据结构的有关知识,在解题时针对问题的特点,选择适当的数据结构,并构造算法,编出优美高效的好程序。    本章将介绍一些线性的数据结构及其

2、基本操作。 第一节 线性表“线性表”是指由有限多个类型相同的数据元素组成的集合,它有以下的特点:(1)有唯一的头结点(即第一个数据元素)和尾结点(即最后一个数据元素);(2)除结点外,集合中的每个数据元素均只有一个前驱;(3)除尾结点外,集合中的每一个数据元素均只有一个后继。“线性表”是一种运用非常广范的数据结构。例一、某旅馆有100个房间,以1到100编号,第一个服务员来了,他将所有的房门都打开,第二个服务员再把所有编号是2的倍数的房门都关上,第三个服务员对编号是3的倍数的房门原来开的关上,原来关上的打开,此后的第四,五...服

3、务员均照此办理。问第100个服务员走进后,有哪几扇门是开着的。解:Pascal程序:Programlt7_1_1;usescrt;vardoor:array[1..100]ofboolean; 1到100号房门状态,false--关,true--开   i,j:integer;begin clrscr; fillchar(door,sizeof(door),true);  第一个服务员打开全部房门 fori:=2to100do       i表示服务员号码   forj:=1to100divido     door[i*j]:=n

4、otdoor[i*j]; 对房号为i的倍数的房门进行相反处理 write('Thecodeofopeningdooris : '); fori:=1to100do   ifdoor[i]thenwrite(i,'');end.分析:(1)这里用door[1..100]来存储1到100号房门的开关状态,即是一种线性表,其中:door[1]可以看成是头结点,而door[100]是尾结点;同时由于数组在内存中是按顺序占有一片连续的内存空间,因此这种存储结构即是顺序存储结构。    (2)这里用布尔变量true和false分别表示开和关两

5、种状态,对某一房门进行相反处理时只要取反(not)即可,比如:若door[10]为false,notdoor[10]则为true。 例二、插入排序:在一个文本文件中存放的N个人的姓名,文本文件的格式为:第一行为N,以下第二至第N+1行分别是N个人的姓名(姓名不重复,由英文字母组成,长度不超过10),请编一个程序,将这些姓名按字典顺序排列。解:Pascal程序:Programlt7_1_2;usescrt;typepoint=^people;  定义结点类型    people=record      name:string[10]

6、; name--数据域,存放姓名      next:point;  next--指针域,存放后继结点的地址    end;varhead:point;   n:integer; procedureinit;  初始化 begin   new(head);head^.next:=nil; 定义头结点,初始链表为空 end; procedureinsert(p:point); 将P指向的结点插入以head开头的线性表中 varq1,q2:point; begin   ifhead^.next=nilthenhead^.next:=p

7、 将P指向的结点插入空链表      else        begin          q1:=head;q2:=q1^.next;          while(q2<>nil)and(q2^.name

8、:string;     f:text;     p:point; begin   write('Filename:');readln(fn);   assign(f,fn);reset(f);   readln(f,n);   fori:=1to

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

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

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