一.程序可实现:
初始化
建立
清空
判满
输出
销毁
删除(按数值/按位置)
查找(按数值/按位置)
插入(按数值/按位置)
ps:“按数值”默认操作对象是指顺序表中第一个同值的元素。
二.网上查找的有关参考
三.完整代码如下:
注意!!!我使用的编译器为Xcode,程序直接放在Dev c++等编译器下运行的时候,中文注释可能会出现乱码类的显示错误。
//头文件(3):
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//结果状态码(6):
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
//动态分配顺序存储结构(2):
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int Status; //此处定义Status等价于int
typedef int ElemType; //此处定义ElemType等价于int
typedef struct{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量
}SqList;
//函数声明(12):
Status InitList_Sq(SqList &L); //构建空表,初始化
void CreastList_Sq(SqList &L); //自定义创建
void ClearList_Sq(SqList &L); //清空
Status ListDelet_place(SqList &L,int i,ElemType &e); //按位置删除
Status ListDelete_num(SqList &L,ElemType e); //按值删除
void DestroyList_Sq(SqList &L); //销毁
void ListFull_Sq(SqList L); //判满
int GetElem(SqList L,int i,ElemType &e); //按位置查找
void LocateElem_Sq(SqList L,ElemType e); //按元素值查找,如有返回第一个匹配元素的位置
Status ListInsert_place(SqList &L,int i,ElemType new_e); //按位置插入
Status ListInsert_num(SqList &L,ElemType e,ElemType new_e);//按值后插入
void ListTraverse_Sq(SqList L); //输出
//主函数
int main()
{
SqList L;
int a,i; //a是操作选项的数字
ElemType e,new_e;
Status InitList_Sq(SqList &L);
InitList_Sq(L);
while (1)
{
printf("\n请输入对应数字操作菜单(0〜10):\n");
printf("1.创建顺序表\n");
printf("2.按数值查找,返回符合条件的第一个元素的位置\n");
printf("3.按位置查找,返回符合条件的第一个元素的地址\n");
printf("4.按数值(查找到的第一个)后插入\n");
printf("5.按位置后插入\n");
printf("6.按数值(查找到的第一个)删除\n");
printf("7.按位置删除\n");
printf("8.输出顺序表\n");