1、 需求分析:
构建一个顺序表并实现顺序表的一些基本操作,例如创建列表,插入、删除元素,求元素的前驱等功能。
(1) 顺序表中数据元素为整形数字,范围属于int型。
(2) 输出部分操作提示以及功能操作所得到的数据(int型)。
(3) 顺序表建立、删除、插入、查询、判空、判满、查询前后驱等功能。 (4) 测试数据:
a)
b)
2、 概要设计:
用一个结构定义了一个数组,和数组内容的长度。主程序使用switch语句对将要进行
的操作进行选择,调用各个功能函数。 3、 实验源代码如下:
#include int date[100]; int length; }SeqList; SeqList L; SeqList SeqListInit()//初始化顺序表 { } void ListClear()/* 清空顺序表*/ { } int ListLength()/* 求顺序表长度*/ { } int ListEmpty()/* 检查顺序表是否为空*/ { } int ListFull()/*检查顺序表是否为满*/ { if(L.length==0) else cout<<\"不为空\"< cout<<\"顺序表里面储存数据为\"< } if(L.length==100) else cout<<\"未满\"< int ListGet(int i)/* 从顺序表中查找元素*/ { } int ListLocate(int x) { } void ListInsert(int i, int x) { } void ListDelete(int i) { if(i>=0&&i for(int m=0;i<=L.length-i;m++) L.date[L.length]=L.date[L.length-1]; L.date[i-1]=x; L.length++; } if(i>=0&&i cout< } int ListPrior(int e) { } int ListNext(int e) { if(e>=0&&e cout<<\"1初始化顺序表\"< case 1:SeqListInit();break; case 2:ListClear();break; case 3:ListLength();break; case 4:ListEmpty();break; case 5:ListFull();break; case 6:ListTraverse();break; case 7: { int m; cout<<\"请输入查找元素的位置\"< if(e-2>=0&&e-2 } } } { } { } { } { } { } cin>>m; ListGet(m);break; case 8: int m; cout<<\"请输入查找元素\"< ListLocate(m);break; case 9: int x; cout<<\"请输入插入的元素\"< ListInsert(i,x);break; case 10: int m; cout<<\"请输入删除的元素\"< ListDelete(m);break; case 11: int m; cout<<\"请输入元素的位置\"< ListPrior(m);break; case 12: int m; cout<<\"请输入元素的位置\"< ListNext(m);break; default:break; 4、 a) 遇见形参与实参搞混问题,改形参里面的内容并不影响其原本数据。多遇见几次这类似的 问题,以后就会顺利完成了。 b) 程序里面的语法结构问题,经过多次调试后便可以继续运行。 因篇幅问题不能全部显示,请点此查看更多更全内容