程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 三元組--數據結構

三元組--數據結構

編輯:C++入門知識

C語言(本書未直接采用類和對象等設施,而是從C語言中精選了一個核心子集,並增添C++語言的引用調用參數傳遞方式等,構成一個類C描述語言)源代碼如下:

[cpp]
# include <stdio.h>  
# include <stdlib.h>  
# define TRUE 1  
# define FALSE 0  
# define OK 1  
# define ERROR 0  
# define INFREASIBLE -1  
# define OVERFLOW -2  
typedef int Status; 
typedef int ElemType; 
 
typedef ElemType * Triplet; 
 
Status InitTriplet(Triplet & T, ElemType v1, ElemType v2, ElemType v3); 
Status DestroyTiplet(Triplet & t); 
Status Get(Triplet T, int i, ElemType & e); 
Status Put(Triplet & T, int i, ElemType & e); 
Status IsAscending(Triplet T); 
Status IsDescending(Triplet T); 
Status Max(Triplet T, ElemType & e); 
Status Min(Triplet T, ElemType & e); 
Status Show(Triplet T); 
 
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 DestroyTiplet(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) 

    return (T[0] <= T[1]) && (T[1] <= T[2]); 

Status IsDescending(Triplet T) 

    return (T[0] >= T[1]) && (T[1] >= T[2]); 

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; 

Status Show(Triplet T) 

    int i; 
    for(i = 0; i < 3; i++) { 
        printf("%d  ", T[i]); 
    } 
    putchar('\n'); 
    return OK; 

 
int main(void) 

    Triplet T; 
    InitTriplet(T, 9, 3, 0); 
    Show(T); 
    ElemType e; 
    Get(T, 2, e); 
    printf("%d\n", e); 
    Put(T, 1, 5); 
    Show(T); 
    printf("%d  %d\n", IsAscending(T), IsDescending(T)); 
    ElemType e1, e2; 
    Max(T, e1); 
    Min(T, e2); 
    printf("%d  %d\n", e1, e2); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved