数据结构实验一线性表(C语言描述) 线性表实验

数据结构实验报告-2-2-线性表(链表实现)_文档下载
亿万文档 免费下载
当前位置: &
& 数据结构实验报告-2-2-线性表(链表实现)
数据结构实验报告-2-2-线性表(链表实现)
线性表(链表实现)的基本操作及其应用
一、实验目的
1、帮助读者复习C语言程序设计中的知识。
2、熟悉线性表的逻辑结构。
3、熟悉线性表的基本运算在链表结构上的实现。
4、掌握链表的存储结构形式及其描述和基本运算的实现。
二、实验内容
[问题描述]
实现链表结构上的顺序表建立、销毁、求长度,取元素、修改元素、插入、删除等基本操作。
[基本要求]
(1) 实现链表初始化操作;
(2) 实现链表销毁操作;
(3) 实现链表获得元素操作;
(4) 实现链表插入元素操作;
(5) 实现链表删除元素操作;
(6) 实现链表元素更新操作。
[代码模板]
1.顺序表数据类型:
typedef int DataT
typedef struct node{
struct node *
typedef ListNode * LinkL
三、源代码
LinkList CreateList()
ListNode *a;
a=(LinkList)malloc(sizeof(ListNode));
a-&next=NULL;
void DestroyList(LinkList l)
ListNode *q=NULL;
ListNode *p=l;
Word文档免费下载: (下载1-4页,共4页)
数据结构实验报告-2-2-线性表(链表实现)_计算机软件及应用_IT/计算机_专业资料。实验 2.2 线性表(链表实现)的基本操作及其应用 一、实验目的 1、帮助读者复习 ...数据结构实验报告在实现线性表的基础上实现逆置功能_计算机软件及应用_IT/计算机_...结构体类型的指针:struct LNode *} 作用:定义链表结构体 2)为了实现上述...数据结构实验报告-2-1-线性表(顺序表实现)_计算机软件及应用_IT/计算机_专业资料。实验 2.1 线性表(顺序表实现)的基本操作及其应用 一、实验目的 1、帮助读者...在两种存储结构(顺序结构和链式结构)上的实现; 2....程序的运行结果, 结合程序进行分析并写出实验报告。 ...//数据元素类型 //单链表实现线性表 4 struct Node...数据结构实验报告java_链表_电脑基础知识_IT/计算机_专业资料。实验二一、实验目的 链表 熟练掌握线性表在链式存储结构上的基本操作。 二、实验平台 操作系统:...数据结构实验二试验报告... 17页 7下载券 数据结构实验,线性表的插... 19页...2.设计一个带头结点的单链表类,要求: (1)生成一个整数线性表,实现将其分解...2. 重点是线性表的基本操作在两种存储结构上的实现;其中以链表的操作为侧重点;并进一步学习程 序设计方法。 3. 掌握栈这种数据结构特性及其主要存储结构,并能在...数据结构实验三栈和队列的... 数据结构实验四字符串...三、 线性表的链式表示和实现 1.单链表 线性链表...如图 2-2 所示为一个不带头结点的单链表。 在...___ 实验三 单链表操作验证一、实验目的⑴ 掌握线性表的链接存储结构; ⑵ 验证单链表及其基本操作的实现; ⑶ 进一步掌握数据结构及算法的程序实现的基本方法。 二...线性表――数据结构实验报告_工学_高等教育_教育专区。数据结构,线性表实验报告...next=p1; p2=p1;} 2 根据有序表的基本操作的特点,有序表采用有序链表实现...数据结构与算法分析 实验报告 实验题目: 利用链表实现约瑟夫问题 学生姓名: 学号: 任课教师: 实验时间:
1 一、实验目的和要求 1.掌握并运用线性表、...数据结构实验报告2 4页 1财富值 实验一、单链表的插入和删... 4页 免费搜...16 实验一 1 实验内容 线性表 编写不带头结点单链表的初始化、插入、删除和...当前位置: >>
数据结构(C语言描述)――线性表
第二章 线性表线性结构特点:在数据元素的非空有限集中存在唯一的一个被称作“第一个”的数据元素 存在唯一的一个被称作“最后一个”的数据元素 除第一个外,集合中的每个数据元素均只有一个 前驱 除最后一个外,集合中的每个数据元素均只有一 个后继 §2.1 线性表的逻辑结构定义:一个线性表是n个数据元素的有限序列如例(a1,a2 ,L L, a i ,L L a年龄 18 19 ……n)例 英文字母表(A,B,C,…..Z)是一个线性表学号 001 002 ……姓名 张三 李四 ……数据元素特征:元素个数n―表长度,n=0空表 1&i&n时ai的直接前驱是ai-1,a1无直接前驱 ai的直接后继是ai+1,an无直接后继元素同构,且不能出现缺项 §2.2 线性表的顺序存储结构顺序表:定义:用一组地址连续的存储单元存放一个线性表叫~ 元素地址计算方法:LOC(ai)=LOC(a1)+(i-1)*L LOC(ai+1)=LOC(ai)+L 其中: L―一个元素占用的存储单元个数 LOC(ai)―线性表第i个元素的地址特点:实现逻辑上相邻―物理地址相邻 实现随机存取实现:可用C语言的一维数组实现 V数组下标 0 1内存 a1 a2元素序号 1 2线性表的动态分配顺序存储结构 #define LIST_SIZE 100 #define LISTINCREMENT 10n-1ann备 用 空 间M-1typedef struct { ElemType * }S 插入定义:线性表的插入是指在第I(1≤i ≤ n+1)个元素 之前插入一个新的数据元素x,使长度为n的线性表(a1,a2 ,L L,a ,ai?1, a i ,L L an)n(a变成长度为n+1的线性表1,a2 ,L Li?1, x , a i ,L L a)需将第i至第n共(n-i+1)个元素后移 算法Ch2_1.txtCh2_1.c V数组下标 0 1内存 元素序号 a1 a2 1 2V数组下标 0 1内存 元素序号 a1 a2 1 2i-1 iai ai+1i i+1i-1 ixai ai+1i i+1n-1 nann n+1n-1 nan-1 ann n+1 算法时间复杂度T(n)设Pi是在第i个元素之前插入一个元素的概率,则在长度为n 的线性表中插入一个元素时,所需移动的元素次数的平均次 数为:Eis =∑n +1 i =1Pi ( n ? i + 1 )∴ T (n ) = O (n )1 若认为 Pi = n +1 1 n +1 n 则 Eis = ∑ ( n ? i + 1) = 2 n + 1 i =1 删除定义:线性表的删除是指将第i(1≤i ≤ n)个元素删除, 使长度为n的线性表(a1,a ,a2 ,L L,a ,ai?1, a i ,L L a ,ai+1n)变成长度为n-1的线性表(a12 ,L Li?1,L L an)需将第i+1至第n共(n-i)个元素前移 算法Ch2_2.c V数组下标 0 1内存 元素序号 a1 a2 1 2V数组下标 0 1内存 元素序号 a1 a2 1 2i-1 iai ai+1i i+1i-1 iai+1 ai+2i i+1n-1 nann n+1n-2 n-1ann-1 n 算法评价设Qi是删除第i个元素的概率,则在长度为n的线性表中删除 一个元素所需移动的元素次数的平均次数为:Ede=n∑i =1Q i (n ? i)1 n (n ? i) = n ?1 2若认为 Q i = 则 E de 1 = nn∑∴ T (n ) = O (n )i =1故在顺序表中插入或删除一个元素时,平均移动表的一 半元素,当n很大时,效率很低 顺序存储结构的优缺点优点逻辑相邻,物理相邻 可随机存取任一元素 存储空间使用紧凑缺点插入、删除操作需要移动大量的元素 预先分配空间需按最大空间分配,利用不充分 表容量难以扩充 §2.3 线性表的链式存储结构特点:用一组任意的存储单元存储线性表的数据元素 利用指针实现了用不相邻的存储单元存放逻辑上相邻 的元素 每个数据元素a ,除存储本身信息外,还需存储其直 a 接后继的信息 结点 结点i数据域:元素本身信息 指针域:指示直接后继的存储位置数据域 指针域 例 线性表 (ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG) 存储地址 头指针 H 31 1 7 13 19 25 31 37 43 数据域 LI QIAN SUN WANG WU ZHAO ZHENG ZHOU 指针域 43 13 1 NULL 37 7 19 25H ZHAO ZHOU QIAN WU SUN ZHENG LI WANG^ 线性链表定义:结点中只含一个指针域的链表叫~,也叫单链表 实现 typedef struct Lnode { ElemT struct Lnode * }Lnode,*LinkL生成一个LinkList型新结点:p=(LinkList )malloc(sizeof(Lnode)); 系统回收p结点:free(p) 头结点:在单链表第一个结点前附设一个结点叫~ 头结点指针域为空表示线性表为空 头结点 h a1 a2 …... an ^h^空表 单链表的基本运算查找:查找单链表中是否存在结点X,若有则返回指向X结点 的指针;否则返回NULL 算法描述Ch2_3.txt算法评价若找到结点X,为结点X在表中的序号 While循环中语句频度为∴ T (n ) = O (n )p否则,为n插入:在线性表两个数据元素a和b间插入x,已知p指向a a b xp-&next=s; s算法描述 算法评价s-&next=p-&T (n ) = O (1 ) 删除:单链表中删除b,设p指向a p a b cp-&next=p-&next-&算法描述算法评价T (n ) = O (1 ) 动态建立单链表算法:设线性表n个元素已存放在数组a中, 建立一个单链表,h为头指针 算法描述Ch2_6.txth h h头结点 头结点 0 0 ^ 0ann-12 ^ aa1 aana2 ^ …...an-1 …...an n^算法评价T (n ) = O (n )Ch2_3.c 单链表特点它是一种动态结构,整个存储空间为多个链表共用 不需预先分配空间 指针占用额外存储空间 不能随机存取,查找速度慢 循环链表(circular linked list)循环链表是表中最后一个结点的指针指向头结点,使 链表构成环状 特点:从表中任一结点出发均可找到表中其他结点, 提高查找效率 操作与单链表基本一致,循环条件不同单链表p或p-&next=NULL 循环链表p或p-&next=Hhh空表 双向链表(double linked list)单链表具有单向性的缺点 结点定义 typedef struct Dulnode { struct Dulnode *prior,* } Dulnode,*D空双向循环链表: Lpriordatanext非空双向循环链表: L ab pA cBp-&prior-&next= p= p-&next-& 删除ap-&prior-&next=p-&b cP 算法描述p-&next-&prior=p-&void del_dulist(Dulinklist p) {p-&prior-&next=p-& p-&next-&prior=p-& free(p); }算法评价:T(n)=O(1) 插入a xP bS算法描述void ins_dulist(Dulinklist p,int x) {D s=(Dulinklist)malloc(sizeof(Dulnode)); s-&data=x; s-&prior=p-& p-&prior-&next=s; s-&next=p; p-&prior=s; }算法评价:T(n)=O(1) §2.4 线性表的应用举例一元多项式的表示及相加 一元多项式的表示:可用线性表P表示Pn ( x ) = P0 + P1 x + P2 x 2 + L L + Pn x nP = ( P0 , P1 , P2 , L L , Pn ) S ( x ) = 1 + 3 x 1000 + 2 x 20000但对S(x)这样的多项式浪费空间 一般 其中Pn ( x ) = P1 x e1 + P2 x e 2 + L L + Pm x em0 ≤ e1 ≤ e 2 L L ≤ em ( Pi 为非零系数)用数据域含两个数据项的线性表表示((P1, e1), 2, e 2 ), L (Pm, em )) (P L其存储结构可以用顺序存储结构,也可以用单链表 单链表的结点定义typedef struct node { int coef, struct node * }JD;2coefexpnext一元多项式相加A(x) = 7 + 3x + 9 x B ( x ) = 8 x + 22 x7+ 5 x 177? 9x8 + 5 x 17C ( x ) = A ( x ) + B ( x ) = 7 + 11 x + 22 xA B C-1 -1 -17 8 70 1 031985 17 ^22 7 11 1-9 8 ^ 22 7 5 17 ^ 运算规则设p,q分别指向A,B中某一结点,p,q初值是第一结点 p-&exp & q-&exp: p结点是和多项式中的一项 p后移,q不动 p-&exp & q-&exp: q结点是和多项式中的一项 将q插在p之前,q后移,p不动 p-&exp = q-&exp: 系数相加 0 0:从A表中删去p, A p, 释放p,q,p,q后移 ≠0:修改p系数域, 释放q,p,q后移比较 p-&exp与q-&exp直到p或q为NULL若q==NULL,结束若p==NULL,将B中剩余部分连到A上即可 算法描述Ch2_7.txtpre pa pa pb pb -1 -1 -1 -1p pre 7 7 8 8 q 0 0 1 1p pre 11 11 3 11 1 22 7 22 7 q pre 11 1p p 9 9 8 8p 5 17 ^ 5 17 ^ q=NULL-9 8 ^ -9 8 ^ q 22 7pa-1705 17 ^Ch2_7.c
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。&>&数据结构 C语言 线性表 实验报告加代码
数据结构 C语言 线性表 实验报告加代码
上传大小:94KB
数据结构 C语言 线性表 实验报告 原代码和实验报告
综合评分:3.7(14位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
审核通过送C币
STM32系列驱动代码
5个经典的C语言课程设计
创建者:ewrest
上传者其他资源上传者专辑
Android 滑动效果 3D旋转
android中activity跳转的几种动画
android 3d 切换界面
华为android 笔试面试
诚迈科技android开发工程师面试
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
数据结构 C语言 线性表 实验报告加代码
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
数据结构 C语言 线性表 实验报告加代码&&&&&数据结构实验教程——C语言描述&
邀请好友参加吧
版 次:1页 数:1000字 数:201印刷时间:日开 本:16开纸 张:胶版纸包 装:平装-胶订是否套装:否国际标准书号ISBN:2所属分类:&&&
下载免费当当读书APP
品味海量优质电子书,尊享优雅的阅读体验,只差手机下载一个当当读书APP
本商品暂无详情。
当当价:为商品的销售价,具体的成交价可能因会员使用优惠券、积分等发生变化,最终以订单结算页价格为准。
划线价:划线价格可能是图书封底定价、商品吊牌价、品牌专柜价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品曾经展示过的销售价等,由于地区、时间的差异化和市场行情波动,商品吊牌价、品牌专柜价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:折扣指在划线价(图书定价、商品吊牌价、品牌专柜价、厂商指导价等)某一价格基础上计算出的优惠比例或优惠金额。如有疑问,您可在购买前联系客服咨询。
异常问题:如您发现活动商品销售价或促销信息有异常,请立即联系我们补正,以便您能顺利购物。
当当购物客户端手机端1元秒
当当读书客户端万本电子书免费读数据结构:C语言描述(殷人昆)【电子书籍下载 epub txt pdf doc 】
书籍作者:
书籍出版:
机械工业出版社
书籍页数:
书籍ISBN:
书籍人气:
推荐指数:
数据结构:C语言描述《数据结构:c语言描述》是根据2007年教育部颁发的《高等学校计算机科学与技术专业公共核心知识体系与课程》规范和2010年修订的《全国硕士研究生入学统一考试计算机专业基础综合考试大纲》编写的数据结构课程教材。全书共分7章:第1章介绍数据结构的地位和主要知识点,数据结构和算法的基本概念,算法分析的简单方法,以及用c语言编程的要点;第2~7章对应考试大纲的6个知识单元,包括线性表,栈、队列和数组,树与二叉树,图,查找,排序。本书融入了作者三十多年的教学经验和考试辅导体会,合理安排相关知识点,对学生容易忽略的地方和隐含在所讨论问题之后的内容给出适当的提示。  《数据结构:c语言描述》既可作为普通高校计算机科学与技术及相关专业本科生学习数据结构课程的教材,也可作为计算机专业考研的辅导教材或其他专业计算机考试的复习教材,还可作为计算机系统开发人员的学习资料。殷人昆,清华大学计算机系教授,中国科学院研究生院工程教育部兼职教授。1985年赴日本东京理科大学做访问学者,研究方向为软件工程过程的质量管理和软件产品的质量评价。主要负责清华大学计算机系“数据结构”、“软件工程”的本科课程教学工作和“软件工程技术与设计”、“软件项目管理”的研究生课程教学工作。主讲的“数据结构”课程被评为清华大学精品课程。曾与人合作或单独编写教材十余本。曾在核心刊物和专业会议发表论文多篇。}

我要回帖

更多关于 数据结构线性表顺序表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信