收藏 分销(赏)

数据结构-顺序表的查找插入与删除.doc

上传人:xrp****65 文档编号:6130307 上传时间:2024-11-28 格式:DOC 页数:4 大小:63.50KB 下载积分:10 金币
下载 相关 举报
数据结构-顺序表的查找插入与删除.doc_第1页
第1页 / 共4页
数据结构-顺序表的查找插入与删除.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 1. 从键盘输入10个整数,产生顺序表,并输入结点值。 2. 从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找不到,则显示“找不到”。 3. 从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插入在对应位置上,输出顺序表所有结点值,观察输出结果。 4. 从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。 二、源程序及注释: #include <stdio.h> #include <stdlib.h> /*顺序表的定义:*/ #include<iostream.h> #define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为100*/ typedef int DataType; /*DataType可以是任何相应的数据类型如int, float或char*/ typedef struct { DataType data[ListSize]; /*向量data用于存放表结点*/ int length; /*当前的表长度*/ }SeqList; void main() { SeqList L; int i,x; int n=10; /*欲建立的顺序表长度*/ L.length=0; void CreateList(SeqList *L,int n); void PrintList(SeqList L,int n); int LocateList(SeqList L,DataType x); void InsertList(SeqList *L,DataType x,int i); void DeleteList(SeqList *L,int i); CreateList(&L,n); /*建立顺序表*/ PrintList(L,n); /*打印顺序表*/ printf("输入要查找的值:"); scanf("%d",&x); i=LocateList(L,x); /*顺序表查找*/ printf("输入要插入的位置:"); scanf("%d",&i); printf("输入要插入的元素:"); scanf("%d",&x); InsertList(&L,x,i); /*顺序表插入*/ PrintList(L,n); /*打印顺序表*/ printf("输入要删除的位置:"); scanf("%d",&i); DeleteList(&L,i); /*顺序表删除*/ PrintList(L,n); /*打印顺序表*/ } /*顺序表的建立:*/ void CreateList(SeqList *L,int n) { int i; for(i=0;i<n;i++) scanf ("%d",&L->data[i]); L->length=n; } /*顺序表的打印:*/ void PrintList(SeqList L,int n) { int i; for(i=0;i<L.length;i++) cout<<L.data[i]<<endl; } /*顺序表的查找:*/ int LocateList(SeqList L,DataType x) { int i=0; while (i<L.length && L.data [i]!=x) ++i; if (i<L.length) return i+ 1; else return 0; } /*顺序表的插入:*/ void InsertList(SeqList *L,DataType x,int i) { int j; if(i<1 || i>L->length +1) { printf("插入位置非法\n"); exit(0); } if(L->length >=ListSize) { printf("表空间溢出,退出运行\n"); exit(0); } for(j =L->length-1; j>=i-1;j--) L->data[j+1]=L->data[j]; L->data[i-1]=x; L->length++; } /*顺序表的删除:*/ void DeleteList(SeqList *L,int i) { int j; if (L->length ==0) { printf("现行表为空,退出运行\n"); exit(0); } if (i<1 || i>L->length) { printf("删除位置非法\n"); exit(0); } for(j=i;j<=L->length -1;j++) L->data[j-1]=L->data[j]; L->length --; } 三、运行输出结果: 四、调试和运行程序过程中产生的问题及采取的措施: 4
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服