实验一 顺序表
一、预备知识
1.顺序表的存储结构形式及其描述
2.顺序表的建立、查找、插入和删除操作
二、实验目的
1.掌握顺序表的存储结构形式及其描述
2.掌握顺序表的建立、查找、插入和删除操作
三、实验内容
1.编写函数,输入一组整型元素序列,建立一个顺序表。
2.编写函数,实现对该顺序表的遍历。
3.编写函数,在顺序表中进行顺序查找某一元素,查找成功则返回其存储位置i,否则返回错误信息。
4.编写函数,实现在顺序表的第i个位置上插入一个元素x的算法。
5.编写函数,实现删除顺序表中第i个元素的算法。
6.编写利用有序表插入算法建立一个有序表的函数。
7.编写函数,实现输入一个元素x,把它插入到有序表中,使顺序表依然有序。
四、实验说明 1.顺序表的存储定义
#define MAXSIZE 100 //顺序表的最大元素个数
typedef int ElemType;//顺序表的元素类型
typedef struct
{ElemType elem[MAXSIZE];//静态线性表
int length; //顺序表的实际长度
} SqList;//顺序表的类型名
举例4:
#include #define MaxSize 100 typedef int DataType; typedef struct//定义结构体Seqlist { DataType list[MaxSize]; int size; } SeqList; int ListLength(SeqList L)//当前数据元素个数 { return L.size; } int ListInsert(SeqList *L,int i,DataType x) { int j; if(L->size>=MaxSize) { printf(\"顺序表已满无法插入!\\n\"); return 0; } else if(i<0||i>L->size) { printf(\"i is error\"); return 0; } else { for(j=L->size; j>i-1; j--)L->list[j]=L->list[j-1]; L->list[i-1]=x; L->size++; return 0; } } int main(void) { SeqList La; int i,x; int n,m;//线性表长度 printf(\"请输入线性表La的长度:\"); scanf (\"%d\ La.size=n; printf(\"请输入线性表La中的元素:\"); for(i=0; i printf(\"请输入要插入到线性表La中的数字x和插入的位置i:\"); scanf(\"%d%d\ ListInsert(&La,i,x); printf(\"线性表La=\"); for(i=0; i return 0; } 五、注意问题 1.插入、删除时元素的移动原因、方向及先后顺序。 2.理解不同的函数形参与实参的传递关系。 六、实验报告 根据实验情况和结果撰写并递交实验报告。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务