其他分享
首页 > 其他分享> > 数据结构学习笔记【第1章 绪论】

数据结构学习笔记【第1章 绪论】

作者:互联网

第一章:绪论

1.1 什么是数据结构

介绍了三种类型数据结构:线性、树、图

1.2 基本概念和术语

#include<stdio.h>
#include<stdlib.h>

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int Status;//默认函数类型
typedef int ElemType;//数据元素类型
typedef ElemType* Triplet;

Status InitTriplet(Triplet& T, ElemType v1, ElemType v2, ElemType v3);
//构造三元组T,三个值分别为v1、v2和v3。
Status DestroyTriplet(Triplet& T);
//销毁三元组
Status Get(Triplet T, int i, ElemType& e);
//用e返回第i元的值
Status Put(Triplet& T, int i, ElemType e);
//改变第i元值为e
Status IsAscending(Triplet T);
//判断是否升序排列
Status IsDescending(Triplet T);
//判断是否降序排列
Status Max(Triplet T, ElemType& e);
//用e返回最大值
Status Min(Triplet T, ElemType& e);
//用e返回最小值
int main()
{
    Triplet T;
    InitTriplet(T, 1, 2, 3);
    ElemType e = 0;
    Get(T, 2, e);
    printf("e:%d\n", e);
    Put(T, 1, e);
    printf("T:%d %d %d\n", T[0],T[1],T[2]);
    printf("IsAscending:%d\n", IsAscending(T));
    printf("IsDescending:%d\n", IsDescending(T));
    Max(T, e);
    printf("Max:%d\n", e);
    Min(T, e);
    printf("Min:%d\n", e);
    system("pause");
    return 0;
}
Status InitTriplet(Triplet& T, ElemType v1, ElemType v2, ElemType v3)
{
    T = (ElemType*)malloc(3 * sizeof(ElemType));
    if (!T) exit(OVERFLOW);
    T[0] = v1; T[1] = v2; T[2] = v3;
    return OK;
}
Status DestroyTriplet(Triplet& T)
{
    free(T);
    T = NULL;
    return OK;
}
Status Get(Triplet T, int i, ElemType& e)
{
    if (i < 1 || i>3) return ERROR;
    e = T[i- 1];
    return OK;
}
Status Put(Triplet& T, int i, ElemType e)
{
    if (i < 1 || i>3) return ERROR;
    T[i - 1] = e;
    return OK;
}
Status IsAscending(Triplet T)
{
    if ((T[0] <= T[1]) && (T[1] <= T[2]))
        return TRUE;
    return FALSE;
}
Status IsDescending(Triplet T)
{
    if ((T[0] >= T[1]) && (T[1] >= T[2]))
        return TRUE;
    return FALSE;
}
Status Max(Triplet T, ElemType& e)
{
    e = (T[0] >= T[1]) ? ((T[0] >= T[2]) ? T[0] : T[2]) : ((T[1] >= T[2]) ? T[1] : T[2]);
    return OK;
}
Status Min(Triplet T, ElemType& e)
{
    e = (T[0] <= T[1]) ? ((T[0] <= T[2]) ? T[0] : T[2]) : ((T[1] <= T[2]) ? T[1] : T[2]);
    return OK;
}

1.4 算法与算法分析

标签:Status,Triplet,return,绪论,int,ElemType,笔记,算法,数据结构
来源: https://www.cnblogs.com/AmarisEx/p/12230596.html