收藏 分销(赏)

实验三-链表插入及删除算法.doc

上传人:仙人****88 文档编号:7378384 上传时间:2025-01-01 格式:DOC 页数:4 大小:34KB 下载积分:10 金币
下载 相关 举报
实验三-链表插入及删除算法.doc_第1页
第1页 / 共4页
实验三-链表插入及删除算法.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
实验三 链表的插入和删除算法 一. 实验目的: 通过上机编程实现线性表链式存储结构的插入和删除算法。 二. 实验要求: 1. 给出程序设计的基本思想、原理和算法描述。 2. 画出程序流程图;根据数据结构有关知识编出算法程序; 3. 源程序给出注释。 4. 保存和打印出程序的运行结果,并结合程序进行分析。 三. 实验内容: 1.编写函数实现链表的插入; 2.编写函数实现链表的删除; 3. 编写程序实现以下功能: (1) 创建顺序栈:22,33,45,99,8; (2) 调用插入函数,在表中第三个位置插入元素58; (3调用删除函数,删除表中第四个位置的元素; (4 输出最终链表中的元素。 #include <stdio.h> #include <malloc.h> #define MaxSize 50 typedef char ElemType; typedef struct { ElemType elem[MaxSize]; int length; }SqList; static SqList L; void InitList() /* 初始化顺序表 */ { L.length=0; } int ListEmpty() /* 判断顺序表是否为空 */ { return(L.length== 0); } int ListLength() /* 求顺序表长度 */ { return(L.length); } void DispList() /* 显示顺序表中所有元素 */ { int i; if(ListEmpty()) return; for(i=0;i<L.length; i++) printf("%c", L.elem[i]); printf("\n"); } int GetElem(int i, ElemType &e) /* 读取顺序表中的元素 */ { if(i<1 || i>L.length) return 0; e=L.elem[i-1]; return 1; } int LocateElem(ElemType e) /* 确定顺序表中元素的位置 */ { int i=0; while(i<L.length && L.elem[i] != e) i++; if(i>= L.length) return 0; else return i+1; } int ListInsert( int i, ElemType e) /*插入*/ { int j; if(i<1 || i>L.length+1) return 0; i--; for(j=L.length; j>i; j--) L.elem[j]=L.elem[j-1]; L.elem[i]=e; L.length++; return 1; } int ListDelete( int i, ElemType &e) /* 删除 */ { int j; if(i<1 || i>L.length) return 0; i--; e=L.elem[i]; for(j=i; j<L.length-1; j++) L.elem[j]=L.elem[j+1]; L.length--; return 1; } void main( ) { ElemType e; printf("(1)初始化顺序表L\n"); InitList(); printf("(2)依次采用尾插法插入a, b, c, d,e元素\n"); ListInsert(1,'a'); ListInsert(2,'b'); ListInsert(3,'c'); ListInsert(4,'d'); ListInsert(5,'e'); printf("(3)输出顺序表L:"); DispList(); printf("(4)顺序表L长度=%d\n",ListLength()); printf("(5)顺序表L为%s\n",(ListEmpty()?"空":"非空")); GetElem( 3, e); printf("(6)顺序表L的第3个元素=%c\n",e); printf("(7)元素a的位置=%d\n",LocateElem('a')); printf("(8)在第4个元素位置上插入f元素\n"); ListInsert( 4, 'f'); printf("(9)输出顺序表L:"); DispList(); printf("(10)删除L的第3个元素\n"); ListDelete(3, e); printf("(11)输出顺序表L:"); DispList(); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服