计算机软件技术基础课程实验_第1页
计算机软件技术基础课程实验_第2页
计算机软件技术基础课程实验_第3页
计算机软件技术基础课程实验_第4页
计算机软件技术基础课程实验_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、线性表的基本应用线性表的基本应用 提纲o 实验目的o 实验内容o 实验指导实验目的n 掌握线性表的基本操作n 掌握单向链表的基本操作实验内容1. 线性链表的基本操作2. 单向链表的基本操作1.线性链表的基本操作n Setnull(L) 设置空表n Length(L) 计算表长度;求表中元素个数n Get(L,i) 获取表中第i个元素(1i n)n Prior(L,i) 获取第i个元素的前趋元素n Next(L,i) 获取第i个元素的后继元素n Locate(L,x) 返回指定元素x在表中的位置n Insert(L,i,x) 插入元素xn Delete(L,x) 删除元素xn Empty(L)

2、判别表是否为空1.线性链表的基本操作-实验要求o 设计程序。建立并初始化如下的线性表1,2,3,4,5,6,7,8,9,0删除值为6的元素 o 要求:绘制程序流程图,并应用C编写程序。2.单向链表的基本操作o单链表的查找o单链表的插入o单链表的删除o单链表的创建2.集成开发环境-实验要求编写程序:利用单向链表实现新生注册管理(录取通知书,姓名,年龄),学生报道时间虽然不同,要求根据学生提供的录取通知书编号进行注册。要求:(1)按学号顺序建立链表(2)实现链表的创建和节点的插入(3)实现错误节点的删除线性表插入-以数组为例/*从0开始计数*/lta_insert(int i,int x)int

3、k;if(last=MAXLENGTH)printf(线性表已满!n); exit(-1);if(ilast-1)printf(插入位置越界%d=ii-1;k-)LISTk+1=LISTk;LISTi=x;+last;int main(void) last=10; lta_delete(1,100); printf(Hello);#include #include #define MAXLENGTH 100int last=0;int LISTMAXLENGTH=1,2,3,4,5,6,7,8,9,10;线性表删除-以数组为例/*从0开始计数*/lta_delete(int i)int k;i

4、f(ilast-1)printf(删除元素不存在,下标范围%d=i=%d!n,1,last-1);exit(-1);for(k=i;klast-1;k+)LISTk=LISTk+1; -last;int main(void) last=10; lta_delete(2); printf(Hello);#include #include #define MAXLENGTH 100int last=0;int LISTMAXLENGTH=1,2,3,4,5,6,7,8,9,10;单向链表-基本数据类型/*单项链表的*/#include #include #include typedef struc

5、t tag_listNode unsigned long id; char szName20; int age; struct tag_listNode *next; ;typedef struct tag_listNode LTL_NODE;typedef struct tag_listNode* LTL_LIST;单向链表-创建LTL_LIST ltl_Create(int n)LTL_LIST L;LTL_NODE *p,*s;int i ;L=(LTL_NODE *)malloc(sizeof(LTL_NODE);L-next=NULL;s=L;s-id =1;for(i=2;inex

6、t =NULL;p-id =i;s-next =p;s=p;return L;单向链表-插入oint ltl_Insert(LTL_LIST L,int i,LTL_NODE x)ooLTL_NODE *s,*p;oint n;oint last;olast=ltl_Length(L);oif(ilast)ooprintf(插入位置越界%d=i=%d!n,1,last);oreturn -1;oos=p=L;ofor(n=1;nnext ;oos=(LTL_NODE *)malloc(sizeof(LTL_NODE);os-age =x.age ;os-id=x.id ;ostrcpy(s-s

7、zName,x.szName ); os-next=p-next;op-next=s;oreturn n;o单向链表-删除oint ltl_Delete(LTL_LIST L,int i)ooLTL_NODE *s,*p;oint n;oint last;olast=ltl_Length(L);oif(ilast)ooprintf(位置越界%d=i=%d!n,1,last);oreturn -1;oos=p=L;ofor(n=1;nnext ;o s=p-next ;op-next =s-next;o free(s);oreturn n;o单向链表-求长度oint ltl_Length(LTL_LIST L)oo LTL_NODE *p;o int i=0;o if(L=NULL)return -1;o p=L;o while(p!=NULL)o oi+;op=p-next;o o return i;o单向链表-查找oint ltl_Locate(LTL_LIST L, LTL_NODE x)oo LTL_NODE *p;o int i =0;o p=L;o while(p)o o if(p-id=x.id & p-age=x.age & (strcmp(p-szName,x.szName )=0)o o re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论