




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 线性表的基本操作及其应用一、实验目的1、帮助读者复习C语言程序设计中的知识。2、熟悉线性表的逻辑结构。3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。二、实验内容本次实验提供3个题目,每个题目都标有难度系数,*越多难度越大,学生可以根据自己的情况任选一个!题目一:单链表的基本操作(*)问题描述实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。基本要求(1)依次从键盘读入数据,建立带头结点的单链表; (2)输出单链表中的数据元素(3)求单链表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。 测试数据#include#include#include#define ERROR 0;typedef struct LNode int data; struct LNode *next;LNode,*LinkList;LinkList InitList(LinkList L) LinkList node = NULL; node = (LinkList)malloc(sizeof(LNode); if(!node) return ERROR; node-next = NULL; L = node; return L;int ListLength(LinkList L) LinkList p = NULL; int count = 0; p = L; while(p-next) count+; p = p-next; return count;LinkList CreateList_L(LinkList L,int n) int i; LinkList p = NULL; for(i=n;i0;i-) p = (LinkList)malloc(sizeof(LNode); scanf(%d,&p-data); p-next = L-next; L-next = p; return L;LinkList ListInsert(LinkList L,int i,int e) int j = 0; LinkList s = NULL,p = NULL; p = L; while(p&jnext; j+; if(!p|ji-1) printf(输入的位置不合法!n); return L; s = (LinkList)malloc(sizeof(LNode); s-data = e; s-next = p-next; p-next = s; return L;LinkList ListDelete(LinkList L,int i) int j; LinkList q = NULL,p = NULL; p = L; j = 0; while(p-next&jnext; j+; if(!(p-next)|ji-1) printf(输入的位置不合法!n); return L; q = p-next; p-next = q-next; free(q); return L;int GetElem(LinkList L,int i) int j,e; LinkList p = NULL; if(iListLength(L) printf(输入的位置不合法!n); return; p = L-next; j = 1; while(jnext; j+; e = p-data; printf(第%d位的数据元素为%dn,i,e);void menu() printf(*目录*n); printf(输出单链表中的各元素值 1n); printf(在单链表中插入数据元素 2n); printf(在单链表中删除数据元素 3n); printf(取出单链表中的数据元素 4n); printf( 结束程序 0n); printf(*n);void main() int n,m,i,e; LinkList L = NULL,p = NULL; L = InitList(L); printf(请输入元素个数:); scanf(%d,&n); printf(依次输入%d个数据元素:,n); L = CreateList_L(L,n); do printf(n n); menu(); printf(请输入你的选择:); scanf(%d,&m); switch(m) case 1: printf(现在链表的元素为:); p = L-next; while(p!=NULL) printf(%d ,p-data); p = p-next; printf(n); break; case 2: printf(依次输入插入位置和数据元素(空格隔开):); scanf(%d %d,&i,&e); L = ListInsert(L,i,e); break; case 3: printf(输入需要删除的元素的位置:); scanf(%d,&i); L = ListDelete(L,i); break; case 4: printf(输入需要取出的元素的位置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政工程师培训课件视频
- 市场开发与管理课件
- 工程防火课件
- 工程给排水课件
- 疫情健康教育教学课件
- 菏泽二年级期中数学试卷
- 河南年文科数学试卷
- 沪科版七升八数学试卷
- 湖南省小学升学数学试卷
- 瀚林2024数学试卷
- 护理人才培养
- 几何画板 培训课件
- 企业司机日常管理制度
- 经皮肺动脉瓣置换术(TPVRPPVI)
- 2025年广西专业技术人员继续教育公需科目(一)答案
- 2025年度滕王阁旅游区讲解员招聘6人笔试参考题库附带答案详解
- 2025贵州省水利投资(集团)有限责任公司招聘84人笔试备考题库附答案详解(达标题)
- 红蓝黄光治疗皮肤病临床应用专家共识(2025版)解读
- 神经外科危重病人抢救流程
- 仓库精细化管理
- 参加活动免责协议书
评论
0/150
提交评论