資料結構之三元組

2021-07-27 09:25:10 字數 3418 閱讀 9651

三元組s1(a,b,c) 元素型別可自定義 elemtype

下面直接貼**

triple.h 標頭檔案

#ifndef _trip_h_

#define _trip_h_

#define error -1

//可更改三元組的資料型別

typedef int elem_type;

//三元組結構體定義

typedef struct _trip

trip;

bool init_trip(trip *p);

trip *init_trip_ex();

bool destory_trip(trip *p);

bool destory_trip_ex(trip *p);

bool put(trip *p, int pos ,elem_type *e);

bool get(trip *p, int pos,elem_type *e);

elem_type get_max(elem_type a,elem_type b);

elem_type get_min(elem_type a,elem_type b);

elem_type max(trip *p);

elem_type min(trip *p);

bool is_ascending(trip *p);

bool is_descending(trip *p);

bool sort(trip *p);

bool show(trip *p,void (*pfunc)(elem_type *,elem_type *,elem_type *));

void print_int(int *a,int *b,int *c);

bool add1(trip *p,trip *s);// p=p+s;

bool add2(trip *p,trip *s,trip *x);//p+s=x;

trip *add3(trip *p,trip *s);//p+s=x;

bool swap_trip(trip *p,trip *s);

#endif

triple.c

#include"trip.h"

#include#include#include#include//初始化三元組

bool init_trip(trip *p)

p->e1 = 0;

p->e2 = 0;

p->e3 = 0;

return true;

}trip *init_trip_ex()

//銷毀三元組

bool destory_trip(trip *p)

p->e1 = 0;

p->e2 = 0;

p->e3 = 0;

return true;

}//三元組空間在堆上開闢

bool destory_trip_ex(trip *p)

free(p);

return true;

}elem_type get_max(elem_type a,elem_type b)

elem_type get_min(elem_type a,elem_type b)

elem_type min(trip *p)

elem_type min = p->e1;

min = get_min(get_min(p->e1,p->e2),p->e3);

return min;

}bool put(trip *p, int pos ,elem_type *e)

switch (pos)

return true;

}bool get(trip *p, int pos,elem_type *e)

switch(pos) }

bool add1(trip *p,trip *s)

p->e1 +=s->e1;

p->e2 +=s->e2;

p->e3 +=s->e3;

return true;

}bool add2(trip *p,trip *s,trip *x)

x->e1 = p->e1 + s->e1;

x->e2 = p->e2 + s->e2;

x->e3 = p->e3 + s->e3;

return true;

}trip *add3(trip *x,trip *s)

trip *p = (trip *)malloc(sizeof(trip)*1);

assert(p != null);

p->e1 = x->e1 + s->e1;

p->e2 = x->e2 + s->e2;

p->e3 = x->e3 + s->e3;

return p;

}bool swap_trip(trip *p,trip *s)

trip *x = (trip *)malloc(sizeof(trip)*1);

assert(x != null);

p->e1 = s->e1;

s->e1 = x->e1;

x->e1 = p->e1;

p->e2 = s->e2;

s->e2 = x->e2;

x->e2 = p->e2;

p->e3 = s->e3;

s->e3 = x->e3;

x->e3 = p->e3;

return true;

}//不知道三元組元素的資料型別,不能再此處直接printf

bool show(trip *p,void (*pfunc)(elem_type *,elem_type *,elem_type *))//函式指標

pfunc(&p->e1,&p->e2,&p->e3);

return true;

}void print_int(int *a,int *b,int *c)

bool is_ascending(trip *p)

if (p->e1e2 && p->e2e3)

return false;

}bool is_descending(trip *p)

if (p->e1>p->e2 && p->e2>p->e3)

return false;

}//三元組元素排序

bool sort(trip *p)

if (p->e1 >p->e2)

if (p->e2 >p->e3)

if (p->e1 >p->e3)

return true;

}

測試的主函式main.c

#include"trip.h"

#includeint main()

資料結構三元組實驗報告 資料結構三元組專案報告

資料結構專案報告 專案題目 三元組 專案成員 日期 2012年4月1號 1.題目與要求 1.1問題提出 詳細敘述本專案所要實現的問題是建立乙個三元組並且實現一些有關三元組的操作。1.2 本專案涉及的知識點 指標,數值,函式的呼叫 1.3功能要求 1建立乙個三元組並且給它們賦值。2如果三元組存在,把三...

《資料結構》 三元組的實現

在此給出三元組的c語言實現方法,h檔案與.c檔案沒有分開,寫在了乙個檔案中,可以貼上放在clockblocks中執行,或者liunx平台。include include define ok 1 define error 0 typedef int status typedef int elemtyp...

資料結構三元組實驗報告 三元組實驗報告 doc

三元組實驗報告 三元組實驗報告 實驗報告 3元組的實現 一 問題描述 設計乙個實現3元組基本操作的c語言程式 1 實現三元組的構造 取值 修改 有序判斷 最大值 最小值和銷毀 列印等基本操作 2 自行設計選單介面,美觀 實用性強 二 實驗內容 destroytriplet 銷毀乙個三元組 gettr...