zoukankan      html  css  js  c++  java
  • 顺序线性表

    #include <stdio.h>  

    #include "SqList.h"

    int main(void)
    {
    int num = 0;
    char e;
    SqList L;

    InitList(&L);

    //插入元素
    InsElem(&L, 'a', 1);
    InsElem(&L, 'b', 2);
    InsElem(&L, 'c', 3);
    InsElem(&L, 'd', 4);
    InsElem(&L, 'e', 5);
    InsElem(&L, 'f', 6);
    InsElem(&L, 'g', 7);
    InsElem(&L, 'h', 8);
    InsElem(&L, 'i', 9);

    printf("线性表:");
    DispList(L);
    printf("长度:");
    printf("%d", GetLength(L));
    printf("/n");

    num = 3;
    GetElem(L, num, &e);
    printf("第%d个元素:%c/n",num, e);

    e = 'd';
    printf("元素%c是第%d个元素/n", e, Locate(L, e));

    num = 4;
    printf("删除第%d个元素/n", num);
    DelElem(&L, num);
    printf("线性表:");
    DispList(L);
    printf("长度:");
    printf("%d", GetLength(L));
    printf("/n");



    return 0;
    }


    [cpp] view plaincopyprint?
    #ifndef SQLIST
    #define SQLIST

    #define MAX_SIZE 100

    typedef struct{
    char data[MAX_SIZE];
    int length;
    }SqList;

    extern void InitList(SqList *L); //初始化线性表
    extern int GetLength(SqList L); //求线性表的长度
    extern int GetElem(SqList L, int num, char *e); //求线性表中第i个元素
    extern int Locate(SqList L, char x); //按值查找元素
    extern int InsElem(SqList *L, char x, int num); //插入元素
    extern int DelElem(SqList *L, int num); //删除元素
    extern void DispList(SqList L); //输出元素值



    #endif

    [cpp] view plaincopyprint?
    #include "SqList.h"

    /*********************************************************
    ** 函数名:void InitList(SqList *L)
    ** 功能: 初始化线性表
    ** 描述: 长度初始化为0
    ** 作者: 庞辉
    *********************************************************
    */

    void InitList(SqList *L)
    {
    L->length = 0;
    }

    /*********************************************************
    ** 函数名:int GetLength(SqList L)
    ** 功能: 求线性表的长度
    ** 描述: 无
    ** 作者: 庞辉
    *********************************************************
    */

    int GetLength(SqList L)
    {
    return L.length;
    }


    /*********************************************************
    ** 函数名:int GetElem(SqList L, int i, char *e)
    ** 功能: 求线性表中第i个元素
    ** 描述: 错误则返回-1, 若找到则返回0,该元素值存入参数e中
    ** 作者: 庞辉
    *********************************************************
    */

    int GetElem(SqList L, int num, char *e)
    {
    if(num < 1 || num > L.length)
    {
    return -1;
    }
    else
    {
    *e = L.data[num - 1];
    return 0;
    }
    }

    /*********************************************************
    ** 函数名:int Locate(SqList L, char x)
    ** 功能: 按值查找元素
    ** 描述: 错误则返回-1, 若找到则返回位置(从1开始计量)
    ** 作者: 庞辉
    *********************************************************
    */

    int Locate(SqList L, char x)
    {
    int i = 0;

    for(i = 0; i < L.length; i++)
    {
    if(L.data[i] == x)
    {
    return i + 1;
    }
    }

    return -1;
    }

    /*********************************************************
    ** 函数名:int InsElem(SqList *L, char x, int num)
    ** 功能: 在某位置插入元素
    ** 描述: 错误则返回-1, 若成功则返回0
    ** 作者: 庞辉
    *********************************************************
    */

    int InsElem(SqList *L, char x, int num)
    {
    int i = 0;

    if((num < 1 || num > L->length + 1) || (L->length == MAX_SIZE))
    {
    return -1;
    }
    else
    {
    for(i = L->length - 1; i > num - 2; i--)
    {
    L->data[i + 1] = L->data[i];
    }

    L->data[i + 1] = x;

    L->length++;

    return 0;
    }
    }

    /*********************************************************
    ** 函数名:int DelElem(SqList *L, int num)
    ** 功能: 在某位置删除元素
    ** 描述: 错误则返回-1, 若成功则返回0
    ** 作者: 庞辉
    *********************************************************
    */

    int DelElem(SqList *L, int num)
    {
    int i = 0;

    if(num < 1 || num > L->length)
    {
    return -1;
    }
    else
    {
    for(i = num; i < L->length; i++)
    {
    L->data[i - 1] = L->data[i];
    }

    L->length--;
    }
    }

    /*********************************************************
    ** 函数名:void DispList(SqList L)
    ** 功能: 输出元素值
    ** 描述: 无
    ** 作者: 庞辉
    *********************************************************
    */

    void DispList(SqList L)
    {
    int i = 0;

    for(i = 0; i < L.length; i++)
    {
    printf("%c ", L.data[i]);
    }

    printf("/n");
    }



  • 相关阅读:
    EasyBPM进销存之物料管理
    水厂流程三维场景可视化解决方案
    构造器
    可变形参
    重写
    拥塞处理(一)——拥塞处理的历史概述
    idea的各种乱码问题
    MySQL的主键也想使用uuid
    使用spring security明文密码校验时报错-BadCredentialsException: Bad credentials
    ValueError: check_hostname requires server_hostname
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2309944.html
Copyright © 2011-2022 走看看