日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2025/4/17 编程问答 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性表adt的c语言表达,抽象数据类型定义(ADT) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

類C語言語法示例

1、預定義常量和類型

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef in Status; //Status是函數(shù)的類型,其值是函數(shù)結(jié)果狀態(tài)代碼。

2、數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)

typedef ElemType first;

3、基本操作的算法

函數(shù)類型 函數(shù)名(函數(shù)參數(shù)表){

//算法說明

語句序列

}//函數(shù)名

4、賦值語句

簡單賦值:

變量名=表達式;

串聯(lián)賦值:

變量名1=變量名2=...=變量名k=表達式;

成組賦值:

(變量名1,...,變量名k)=(表達式1,...,表達式k);

結(jié)構(gòu)名=結(jié)構(gòu)名;

結(jié)構(gòu)名=(值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、循環(huán)語句

for(賦初值表達式;條件;修改表達式序列)語句;

while(條件)語句;

do{ 語句序列}while(條件);

7、結(jié)束語句

return [表達式];

return; //函數(shù)結(jié)束語句

break; //case結(jié)束語句

exit(異常代碼); //異常結(jié)束語句

8、輸入和輸出語句

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

9、注釋

//文字序列

10、基本函數(shù)

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

min,abs,floor,ceil,eof,eoln

11、邏輯運算

&&與運算;||或運算

例:線性表的實現(xiàn):

ADT List{

數(shù)據(jù)對象: 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);

}

總結(jié)

以上是生活随笔為你收集整理的线性表adt的c语言表达,抽象数据类型定义(ADT)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。