收藏 分销(赏)

数据结构-实验一顺序表的基本操作.doc

上传人:pc****0 文档编号:5974581 上传时间:2024-11-24 格式:DOC 页数:6 大小:47.50KB 下载积分:10 金币
下载 相关 举报
数据结构-实验一顺序表的基本操作.doc_第1页
第1页 / 共6页
数据结构-实验一顺序表的基本操作.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
实验1  顺序表基本操作   实验目的 1.  熟悉C语言的上机环境,掌握C语言的基本结构。 2.  会定义线性表的顺序存储结构。 3.  熟悉对顺序表的一些基本操作和具体的函数定义。   注意事项 在做第一次“数据结构”课程实验之前,要在硬盘上建立好自己的工作目 录,专门来存储你所做的实验程序及相关信息,以后每次做实验都采用这个目录。   实验内容 该程序的功能是对元素类型为整型的顺序表进行一些操作。该程序包括 顺序表结构类型的定义以及对顺序表操作的具体的函数定义和主函数。 /* 定义ElemType为int类型 */ typedef int ElemType;   /*顺序表存储空间的总分配量*/ #define MAXSIZE 100   /* 顺序存储类型 */ typedef struct {ElemType data[MAXSIZE]; /*存放线 性表的数组*/ int length;               /* length是顺序表的长度*/ }SeqList;   /* 初始化顺序表 */ SeqList SeqListInit( )   /* 清空顺序表 */ SeqList ListClear(SeqList L)   /* 求顺序表长度 */ int ListLength(SeqList L)   /* 检查顺序表是否为空 */ int ListEmpty(SeqList L)   /*检查顺序表是否为满 */ int ListFull(SeqList L)   /* 遍历顺序表 */ void ListTraverse(SeqList L)   /* 从顺序表中查找元素 */ ElemType ListGet(SeqList L ,int i)   /* 从顺序表中查找与给定元素值相同的元素在顺序表中的位置 */ int ListLocate(SeqList L, ElemType x)   /* 向顺序表中插入元素 */ SeqList ListInsert(SeqList L,int i,ElemType x)   /* 从顺序表中删除元素 */ SeqList ListDelete(SeqList L,int i)    /*求顺序表中元素的前驱*/ ElemType ListPrior (SeqList L,ElemType e)   /*求顺序表中元素的后继*/ ElemType ListNext(SeqList L,ElemType e)   =========================================================================                                 部分参考程序   ===================================================================================   /* 定 义ElemType为int类型 */ typedef int ElemType;   /*顺 序表存储空间的总分配量*/ #define MAXSIZE 100 #define FALSE 0 #define TRUE 1   /* 顺 序存储类型 */ typedef struct {ElemType data[MAXSIZE]; /*存放线性表的数组*/      int length;               /* length是顺序表的长度*/ }SeqList;   /* 初 始化顺序表 */ SeqList SeqListInit( ) {SeqList L;  L.length=0;  return L;  }   /* 清 空顺序表 */ SeqList ListClear(SeqList L) {L.length=0;  return L; }   /* 求 顺序表长度 */ int ListLength(SeqList L) {return(L.length);}   /* 检 查顺序表是否为空 */ int ListEmpty(SeqList L) {if(L.length) return(FALSE);  else return(TRUE); }   /*检 查顺序表是否为满 */ int ListFull(SeqList L) {if(L.length==MAXSIZE) return(TRUE);  else return(FALSE); }   /* 遍 历顺序表 */ void ListTraverse(SeqList L) {int i;  if(L.length<=0) printf("顺序表为空\n");  else {printf("当前顺 序表中的元素为:\n");        for(i=1;i<=L.length;i++) printf("%5d ",L.data[i-1]);         printf("\n");  } }   /* 从 顺序表中查找元素 */ ElemType ListGet(SeqList L ,int i) {ElemType e;  e=L.data[i-1];  return(e); }   /* 从 顺序表中查找与给定元素值相同的元素在顺序表中的位置 */ int ListLocate(SeqList L, ElemType x) {int i=0;  while(i<L.length&&L.data[i]!=x)      i++;  if (i<L.length)  return (i+1);  else  return 0; }   /* 向 顺序表中插入元素 */ SeqList ListInsert(SeqList L,int i,ElemType x) {int j;  if(L.length==MAXSIZE)      printf("表满,不能插入\n");  else  if(i<1||i>L.length+1)            printf("插入位置不正确\n");        else {for(j=L.length-1;j>=i-1;j--)  /*元素依次向后移动*/        L.data[j+1]=L.data[j];               L.data[i-1]=x;                   /*插入x*/               L.length++;                      /*表长增1*/              }  return L;  }   /* 从 顺序表中删除元素 */ SeqList ListDelete(SeqList L,int i) {int j;ElemType x;  if (i<1||i>L.length)     printf("删除位置不正 确\n");  else {x=L.data[i-1];        for(j=i;j<=L.length-1;j++)        /*元素依次向前移动*/           L.data[j-1]=L.data[j];        L.length--;                          /*表长减1*/        printf("%d已 被删除\n",x);        }  return L; }   /*求顺序表中元素的前驱*/ ElemType SeqListPrior(SeqList L,ElemType e) {int i=0;  while(i<L.length&&L.data[i]!=e)    /*在顺序表中查找值为e的元素*/     i++;  if(i==0) {printf("第 一个元素没有前驱\n");return 0;}  else if(i<=L.length-1)  return(L.data[i-1]);        else  {printf("不存在值为%d的元素\n",e);return 0;} }   /*求顺序表中元素的后继*/ ElemType SeqListNext(SeqList L,ElemType e) {int i=0;  while(i<L.length&&L.data[i]!=e)    /*在顺序表中查找值为e的元素*/      i++;  if(i==L.length-1) {printf("最后一个元素没有后继\n");return 0;}  else if(i<L.length-1)  return(L.data[i+1]);        else  {printf("不存在值为%d的元素\n",e);return 0;} }
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服