【C语言/数据结构】顺序表的基本操作

这篇博客详细介绍了如何用C语言实现顺序表的基本操作,包括初始化、建立、清空、判满、输出、销毁、删除和查找等功能。文章还提到了++i与i++的差异以及C++中函数形参的引用符号(&)的影响,并提供了完整的代码实现。博主在Xcode环境下测试通过,并欢迎读者在评论区交流讨论可能存在的问题和改进建议。
摘要由CSDN通过智能技术生成

一.程序可实现:

初始化
建立
清空
判满
输出
销毁
删除(按数值/按位置)
查找(按数值/按位置)
插入(按数值/按位置)

ps:“按数值”默认操作对象是指顺序表中第一个同值的元素。

二.网上查找的有关参考

  1. 有关++i 和i++的区别以及在for()循环语句中的应用细节.
  2. C++中函数的形参带&和不带&的差别.
  3. C语言指针作为形参的一些问题.

三.完整代码如下:

注意!!!我使用的编译器为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");
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值