| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 805 人关注过本帖
标题:[求助]抽象数据类型的实现C的代码分析
只看楼主 加入收藏
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
结帖率:33.33%
收藏
 问题点数:0 回复次数:7 
[求助]抽象数据类型的实现C的代码分析

抽象数据类型的实现 (C运行)
#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<L.length;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;
}/*ListInsert Before i */

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);
}

运行结果:

E:\ZM\Zmdoc\datastru\class02>listdemo

name stuno age score

zmofun 100001 80 1000

List length now is 1.

name stuno age score

bobjin 100002 80 1000

zmofun 100001 80 1000

List length now is 2.


请问这些代码的作用和实现的目的是什么 ?

[此贴子已经被作者于2006-3-26 22:09:38编辑过]

搜索更多相关主题的帖子: 数据类型 int struct score 
2006-03-23 22:19
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 
难道是问题太菜了 ?!
咋没有人指点指点呢 ?

Give me a world !   A beautiful world !
2006-03-24 19:43
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 
哭了
还没有人帮忙啊 ?

难道人都跑水区了 ?!

Give me a world !   A beautiful world !
2006-03-24 22:46
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
收藏
得分:0 

写的不错啊!
恐怕好多人看不懂哦!就没有回


http://www. 第二站>>>提供源码下载
2006-03-25 10:22
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

不是我写的啊...
我自己看不明白,才问的...

Give me a world !   A beautiful world !
2006-03-25 11:50
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

Give me a world !   A beautiful world !
2006-03-25 16:21
eagleking000
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-27
收藏
得分:0 
晕,哪看不懂?
结果都有了还不容易推.

2006-03-28 07:51
eagleking000
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-27
收藏
得分:0 
#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<L.length;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]); //将数组结构体的最后一位赋给q
for(p=&L->stu[L->length-1];p>=q;--p) 将i后结构向后复制
*(p+1)=*p; *q=e; ++L->length; 插入e至第i个位置
return OK;
}/*ListInsert Before i */

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);
}
就是一个简单的插入而已.


2006-03-28 08:08
快速回复:[求助]抽象数据类型的实现C的代码分析
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023489 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved