类C语言语法示例

1、预定义常量和类型

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef in Status; //Status是函数的类型,其值是函数结果状态代码。

2、数据结构的存储结构

typedef ElemType first;

3、基本操作的算法

函数类型 函数名(函数参数表){

//算法说明

语句序列

}//函数名

4、赋值语句

简单赋值:

变量名=表达式;

串联赋值:

变量名1=变量名2=...=变量名k=表达式;

成组赋值:

(变量名1,...,变量名k)=(表达式1,...,表达式k);

结构名=结构名;

结构名=(值1,...,值k);

变量名[]=表达式;

变量名[起始下标..终止下标]=变量名[起始下标..终止下标];

交换赋值:

变量名变量名;

条件赋值:

变量名=条件表达式?表达式?表达式T:表达式F

5、选择语句

1、if(表达式) 语句;

2、if(表达式) 语句;

else 语句;

3、switch(表达式){

case 值1:语句序列1;break;

...

case 值n:语句序列n;break;

default:语句序列n+1;break;

}

4、switch{

case 条件1:语句序列1;break;

...

case 条件n:语句序列n;break;

default:语句序列n+1;break;

}

6、循环语句

for(赋初值表达式;条件;修改表达式序列)语句;

while(条件)语句;

do{ 语句序列}while(条件);

7、结束语句

return [表达式];

return; //函数结束语句

break; //case结束语句

exit(异常代码); //异常结束语句

8、输入和输出语句

scanf([格式串],变量1,...,变量n);

9、注释

//文字序列

10、基本函数

max(表达式1,...,表达式n)

min,abs,floor,ceil,eof,eoln

11、逻辑运算

&&与运算;||或运算

例:线性表的实现:

ADT List{

数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n>=0}

基本操作:

InitList(&L)

DestroyList(&L)

ListInsert(&L,i,e)

ListDelete(&L,i,&e)

}ADT List

ListInsert(List &L,int i,ElemType e)

{if(i<1||i>L.length+) return ERROR;

q=&(L.elem[i-1]);

for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p;

*q=e;

++L.length;

return OK;

}

#define ERROR

0

#define OK 1

struct STU

{ char name[20];

char stuno[10];

int age; int score;

}stu[50];

struct LIST

{ struct STU stu[50];

int length;

}L; int printlist(struct LIST

L)

{ int i;

printf("name stuno age score/n");

for(i=0;i

printf("%s %s/t%d/t%d/n", L.stu[i].name, L.stu[i].stuno,

L.stu[i].age, L.stu[i].score);

printf("/n");

}

int listinsert(struct LIST *L,int i,struct STU e)

{ struct STU *p,*q;

if (i<1||i>L->length+1)

return ERROR;

q=&(L->stu[i-1]);

for(p=&L->stu[L->length-1];p>=q;--p)

*(p+1)=*p; *q=e; ++L->length;

return OK;

}

main()

{ struct STU e;

L.length=0;

strcpy(e.name,"zmofun");

strcpy(e.stuno,"100001");

e.age=80;

e.score=1000;

listinsert(&L,1,e);

printlist(L);

printf("List length now is %d./n/n",L.length);

strcpy(e.name,"bobjin");

strcpy(e.stuno,"100002");

e.age=80;

e.score=1000;

listinsert(&L,1,e);

printlist(L);

printf("List length now is %d./n/n",L.length);

}

线性表adt的c语言表达,抽象数据类型定义(ADT)相关推荐

  1. 线性表的顺序存储 c语言表达,线性表的基本操作顺序存储(C语言).doc

    线性表的基本操作顺序存储(C语言) #include#include#include#define LIST_INIT_SIZE/*线性表存储空间初始分配量*/#define LISTINCREMEN ...

  2. 线性表的定义与特点及抽象数据类型定义

    一.线性表的定义 由n(n>=0)个数据特性相同的元素构成的有限序列称为线性表. 线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时线性表称为空表. 二.非空线性表及线性结构的特 ...

  3. 数据结构第四篇——(一般)线性表(基于C语言)

    前言 以下描述内容以C语言为主,Java只是作为实现的补充. 一.线性表的定义及性质 线性表是由n(n>=O)个数据类型相同的元素构成的有限序列. 线性表中元素的个数n(n>=O)定义为表 ...

  4. 线性表抽象数据类型定义与顺序表操作

    作业3-线性表抽象数据类型定义与顺序表操作 1-1 对于顺序存储的长度为N的线性表, 访问结点和增加结点的时间复杂度 分别对应为O(1)和O(N).(T) [解析]增加结点,不同位置复杂度不同,但平均 ...

  5. 【openai】请帮我设计一个通用的ERP管理系统,涉及到的表结构用mysql语言表达出来,全部写出来

    背景 这周末把openAi集成到自己的web系统里面了 尝试提问了几个技术和日常问题,感觉回答的还不错 问题1:[请帮我设计一个通用的ERP管理系统,涉及到的表结构用mysql语言表达出来,全部写出来 ...

  6. C语言之抽象数据类型(四十七)

    1.数据类型 定义:是一个值的集合和定义在这个值集上的一组操作的总称. 2.抽象数据类型(Abstract Data Type) 定义:抽取实际问题的本质. 指由用户定义的.表示应用问题的数学模型,以 ...

  7. 【 C 】经典抽象数据类型(ADT)之内存分配

    C中的一些抽象数据类型(ADT)如链表.堆栈.队列和树等,链表已经在前几篇博文有所讨论,见: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) [ C ] ...

  8. 线性表的顺序存储——顺序存储结构的抽象实现

    1,本文完成顺序存储结构线性表的抽象实现: 1,SeqList 还是一个抽象类,这里仅实现线性表的关键操作,但是还是不能生成具体对象: 2,关键操作虽然指定,但是顺序存储的指定没有在 SeqList ...

  9. 数据结构之线性表的基本C语言语法

    一开始没做笔记,大家想看的话可以参考这里 [数据结构绪论] [数据结构(二)] [数据结构--算法和算法分析] [数据结构--渐进时间复杂度] [数据结构--初识线性表] [数据结构--线性表的顺序实 ...

最新文章

  1. 删除数据库中与同步数据冗余的数据(多对多)
  2. linux net.ipv4.ip_forward 数据包转发
  3. 论文笔记之:RATM: RECURRENT ATTENTIVE TRACKING MODEL
  4. 20210101 Barbalat引理
  5. pyspark intersection代码示例
  6. 小程序获取城市经纬度_微信小程序获取当前所在城市的方法
  7. html 将光标移动到某行,如何将QTextBrowser(其中包含html表)的光标移动到PyQt5中的特定行?...
  8. java撕裂_屏幕撕裂与卡顿分析
  9. c++将十进制存放在2个字节及多个字符中
  10. 微信小程序图片流动动画效果(附代码,图)
  11. rgss3a解包器_Rgss3a解包器下载
  12. 【吐血整理】数据库的安全性
  13. 幂指函数的求导方法, 了解对数恒等式的定义
  14. Unity开发手游在Android平台的内存优化
  15. Ubuntu在线安装NFS服务
  16. 水晶报表 双面打印_打印机办公用纸选购指南!(推荐收藏)
  17. PostgreSQL插入大量数据:pg_testgen插件
  18. Android Vendor Test Suite (VTS) 的概念、作用及测试方法
  19. 区别wchar_t,char,WCHAR
  20. Expressing Fear(2019/1/4)

热门文章

  1. G4Sui老师的pair project(197)
  2. Silverlight的4个版本
  3. JSP中页面向Action传递参数的几种方式
  4. 读书笔记 - 企业精简架构
  5. HTML5 Web SQL数据库
  6. 合成存储方法,局部/全局变量
  7. Spring使用总结
  8. python检测变量是否有定义(即使用前检查是否定义好)
  9. iis布置asp.net网站——服务应用程序不可用
  10. 分享超酷的添加图片悬浮特效jQuery插件 - Adipoli