严蔚敏版数据结构->第一章 程序

原创 2007年09月16日 16:26:00

/*_############################################################################
  _##
  _##  严蔚敏版数据结构->第一章 程序
  _##  Author: xwlee                        
  _##  Time: 2007.09.16
  _##  Chang'an University
  _##  Development condition: win2003 Server+VC6.0 (使用了C/C++语法)
  _## 
  _##  http://csdn.net/Micro_lee
  _##
  _##  数据结构程序测试--抽象数据类型Triplet
  _##########################################################################*/

#include <stdlib.h>
#include <stdio.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 = (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)
{
 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;
}


int main()
{
 Triplet p;
 ElemType x,y,z;
 int i,e, my_max, my_min;

 printf("Please enter v1,v2,v3:");
 scanf("%d %d %d", &x, &y, &z );

 if( InitTriplet( p, x, y, z) != OK )
  printf("Init is error!/n");

 for( i=1; i<4; i++  )
 {
  Get( p, i, e);
  printf("Get(%d)=%d/n", i, e);
 }

 Put( p, 1, 100);
 Put( p, 2, 200);
 Put( p, 3, 300);

 for( i=1; i<4; i++  )
 {
  Get( p, i, e);
  printf("Get(%d)=%d/n", i, e);
 }

 Max( p, my_max );
 Min( p, my_min );
 printf("/nIsAscending=%d/nIsDescending=%d/nMax=%d/nMin=%d/n/n", IsAscending(p), IsDescending(p), my_max, my_min );

 

 DestroyTriplet( p );
 return 0;
}
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

【数据结构】第一章总结

前言 之前自考的总结发的很少,这次要认真的总结一些,一是因为数据结构比较底层,需要好好梳理这部分知识,二是总结过后印象更加的深刻,这次总结一下第一章内容 思维导图 ...
  • cd18333612683
  • cd18333612683
  • 2016年07月16日 10:51
  • 384

数据结构 第一章总结心得

首先呢,对于这门课程,自己最初是没有多大的
  • MTOOTM
  • MTOOTM
  • 2014年10月13日 13:40
  • 527

《数据结构习题与解析》第一章 绪论

1、数据:对客户事物符号的表示,zhi
  • deerleaper
  • deerleaper
  • 2014年06月16日 22:15
  • 512

数据结构(C++版)第一章 绪论

1.1  数据结构在程序设计中的作用
  • AdamHoo
  • AdamHoo
  • 2014年09月18日 23:59
  • 650

第1章 计算机、程序和Python概述

Chapter 1
  • u013603102
  • u013603102
  • 2017年01月31日 09:33
  • 117

数据结构(c++版)第一章 绪论

第 1 章  绪  论 本章的基本内容是:1、数据结构在程序设计中的作用                    2、本书讨论的主要内容                    3、数据结构的基本概...
  • mafengmin
  • mafengmin
  • 2014年09月13日 15:57
  • 119

数据结构(C++版)第一章总结

程序设计的实质sh
  • ym0021
  • ym0021
  • 2014年09月17日 21:08
  • 211

数据结构与算法分析(C++语言版)_张琨版 第一章课后习题答案

第一章 绪论 一、选择题 1. A B  2.B  3.B  4. D  5.A  6.A  7.C  8. B  9.D  10. A 二、填空题 1. 逻辑关系  2.树形结构 图状结构 ...
  • sgzqc
  • sgzqc
  • 2017年11月01日 22:41
  • 238

[uboot] (第一章)uboot流程——概述

[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)建议先看《[project X] tiny210(s5pv210)上电启动...
  • ooonebook
  • ooonebook
  • 2016年10月26日 22:30
  • 1713

Java数据结构和算法中文第二版.pdf免费下载

第二版的新颖之处。 本书的第二版在第一版的基础上有所扩充,使之能更好地适应教师的计算机科学课堂教学,并使读者在阅读上更加容易。除去新增的章节,还添加了章末问题、实验和编程作业。 新增章节 在本版...
  • u012550652
  • u012550652
  • 2013年10月23日 22:57
  • 3076
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:严蔚敏版数据结构->第一章 程序
举报原因:
原因补充:

(最多只允许输入30个字)