线性表adt的c语言表达,抽象数据类型定义(ADT)
类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)相关推荐
- 线性表的顺序存储 c语言表达,线性表的基本操作顺序存储(C语言).doc
线性表的基本操作顺序存储(C语言) #include#include#include#define LIST_INIT_SIZE/*线性表存储空间初始分配量*/#define LISTINCREMEN ...
- 线性表的定义与特点及抽象数据类型定义
一.线性表的定义 由n(n>=0)个数据特性相同的元素构成的有限序列称为线性表. 线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时线性表称为空表. 二.非空线性表及线性结构的特 ...
- 数据结构第四篇——(一般)线性表(基于C语言)
前言 以下描述内容以C语言为主,Java只是作为实现的补充. 一.线性表的定义及性质 线性表是由n(n>=O)个数据类型相同的元素构成的有限序列. 线性表中元素的个数n(n>=O)定义为表 ...
- 线性表抽象数据类型定义与顺序表操作
作业3-线性表抽象数据类型定义与顺序表操作 1-1 对于顺序存储的长度为N的线性表, 访问结点和增加结点的时间复杂度 分别对应为O(1)和O(N).(T) [解析]增加结点,不同位置复杂度不同,但平均 ...
- 【openai】请帮我设计一个通用的ERP管理系统,涉及到的表结构用mysql语言表达出来,全部写出来
背景 这周末把openAi集成到自己的web系统里面了 尝试提问了几个技术和日常问题,感觉回答的还不错 问题1:[请帮我设计一个通用的ERP管理系统,涉及到的表结构用mysql语言表达出来,全部写出来 ...
- C语言之抽象数据类型(四十七)
1.数据类型 定义:是一个值的集合和定义在这个值集上的一组操作的总称. 2.抽象数据类型(Abstract Data Type) 定义:抽取实际问题的本质. 指由用户定义的.表示应用问题的数学模型,以 ...
- 【 C 】经典抽象数据类型(ADT)之内存分配
C中的一些抽象数据类型(ADT)如链表.堆栈.队列和树等,链表已经在前几篇博文有所讨论,见: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) [ C ] ...
- 线性表的顺序存储——顺序存储结构的抽象实现
1,本文完成顺序存储结构线性表的抽象实现: 1,SeqList 还是一个抽象类,这里仅实现线性表的关键操作,但是还是不能生成具体对象: 2,关键操作虽然指定,但是顺序存储的指定没有在 SeqList ...
- 数据结构之线性表的基本C语言语法
一开始没做笔记,大家想看的话可以参考这里 [数据结构绪论] [数据结构(二)] [数据结构--算法和算法分析] [数据结构--渐进时间复杂度] [数据结构--初识线性表] [数据结构--线性表的顺序实 ...
最新文章
- 删除数据库中与同步数据冗余的数据(多对多)
- linux net.ipv4.ip_forward 数据包转发
- 论文笔记之:RATM: RECURRENT ATTENTIVE TRACKING MODEL
- 20210101 Barbalat引理
- pyspark intersection代码示例
- 小程序获取城市经纬度_微信小程序获取当前所在城市的方法
- html 将光标移动到某行,如何将QTextBrowser(其中包含html表)的光标移动到PyQt5中的特定行?...
- java撕裂_屏幕撕裂与卡顿分析
- c++将十进制存放在2个字节及多个字符中
- 微信小程序图片流动动画效果(附代码,图)
- rgss3a解包器_Rgss3a解包器下载
- 【吐血整理】数据库的安全性
- 幂指函数的求导方法, 了解对数恒等式的定义
- Unity开发手游在Android平台的内存优化
- Ubuntu在线安装NFS服务
- 水晶报表 双面打印_打印机办公用纸选购指南!(推荐收藏)
- PostgreSQL插入大量数据:pg_testgen插件
- Android Vendor Test Suite (VTS) 的概念、作用及测试方法
- 区别wchar_t,char,WCHAR
- Expressing Fear(2019/1/4)