主题:我有严蔚敏编撰的《数据结构(C语言版)》的算法实现程序
呈泱雍
[专家分:30] 发布于 2005-12-10 18:54:00
我有严蔚敏编撰的《数据结构(C语言版)》的所有算法实现程序
还有严蔚敏编撰的《数据结构题集(C语言版)》的答案
最后更新于:2009-10-08 12:23:00
回复列表 (共670个回复)
281 楼
woosah [专家分:0] 发布于 2006-10-22 13:11:00
需要啊~~
282 楼
yxm1286 [专家分:0] 发布于 2006-10-23 10:04:00
[em2]
你的QQ是多少啊 我加你~!
283 楼
longqingtian [专家分:10] 发布于 2006-10-23 15:32:00
[color=008000]我想加你做好友,但是你好象设置成了拒绝模式了?[/color]
还有我在邮件里给你留了道题目,能不能帮我解决一下,非常感谢》
#include <stdio.h>
#include <malloc.h>
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int Status
typedef struct
{
ElemType *elem; //存储空间长度
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList
/*****************1.构造一个空的线形表**************************************/
Status InitList(SqList &L)
{
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}//InitList
/*********************2.销毁线形表********************************************/
Status DestroyList(SqList &L)
{
p1=L;
if(p1)
{
free(p1);
p1++;
}
return OK;
}//DestroyList
/***********************3.将表L置空*****************************************/
Status ClearList(SqList &L)
{
if(L)
{
L.elem=0;
}
return OK;
}
/*************************4.判断表L是否为空************************************/
Status ListEmpty(SqList L)
{
p2=L;
if(p2)
{
if( p2++->elem==0 )
{
return TURE;
}
else
return FALSE;
}
}
/*********************5.返回L中数据元素的个数************************************/
Status ListLength(SqList L)
{
p3=L;
Counter=0;
while(p3)
{
if(p3++->elem)
{
Counter++;
}
}
return Counter;
}
/*****************6.用e返回L中第i个数据元素的值*******************************/
GetElem(L,i,&e)
{
while(L)
{
*e=L.elem[i];
}
}//GetElem
/******************7.返回L中与e满足compare()函数的数据元素的位置********************/
Status LocateElem(L,e,compare())
{
while(L)
{
i=0
if( compare(e,L.elem[i++]) ) //要先定义当e和L.elem[i++]满足条件时,值为0
{
return L.elem[i];
}
else
return 0;
}
}
/*******************8.返回cur_e的前驱***************************************************/
Status PriorElem(L,cur_e,&pre_e)
{
p4=L;
while(p4->next && cur_e != L.elem) //cur_e不是第一个元素
{
if(p4++->next->elem !=cur_e)
{
pre_e=p4;
}
else
return FLASE;
}
}
/******************9.返回cur_e的后驱********************************************************/
Status NextElem(L,cur_e,&next_e)
{
p5=L;
while(cur_e != L.elem[i-1] && p5->next)
{
if(p5++->elem != cru_e)
{
next_e=p5;
}
else
return FLASE;
}
}
/*******************10.在L中第i个位置之前插入新的数据元素e,且长度加1***********************/
Status ListInsert(SqList &L,int i,ElemType e)
{
if(i<1 || i>L.length+1)
return ERROR;
if(L.length==L.listsize) //当前的存储空间已满,增加分配
{
newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType) );
if(!newbase)
exit(OVERFLOW); //存储空间分配失败
L.elem=newbase; //L的新地址
L.listsize+=LISTINCREMENT; //增加存储容量
}
q=L.elem+i-1; //插入点地址
for(p=L.elem+L.length-1;p>=q;--p)
*(p+1)=*p;
*q=e;
++L.length;
return OK;
}//ListInsert
/***********************11.删除L的第i个元素************************************************/
Status ListDelete(SqList &L,i,&e)
{
if(i<1 || i>L.length+1)
return ERROR;
q=L.elem+i-1;
e=*q;
for(p=q;p<=L.elem+L.length-1;p++)
{
*p=*(p+1);
}
--L.length;
return OK;
}
/**********************12. 依次对每个数据元素调用visit()函数***************************/
Status ListTraverse(SqList l, visit() )
{
while(L)
{
q=L.elem+i-1;
for(p=L.elem;p<=q;p++)
{
if(!visit(*p))
exit 0;
else
visit(*p);
}
}
}
/****************************main函数*********************************************/
main()
{
}
[fly]我还是弄出来算了,我很想学好数据结构,不会被这么一道题卡了的》[/fly]
284 楼
liuyi31152 [专家分:0] 发布于 2006-10-23 21:55:00
我也要
285 楼
chenjincong [专家分:0] 发布于 2006-10-23 21:59:00
此书是我们数据结构的教材,呵呵
286 楼
我要飞飞飞 [专家分:180] 发布于 2006-10-26 11:13:00
我要 行吗? 加QQ吧517523213
287 楼
jobsen [专家分:0] 发布于 2006-10-26 13:17:00
我也想要,加你QQ了
288 楼
langzhao [专家分:120] 发布于 2006-10-26 17:26:00
我也想要
289 楼
几朵花几 [专家分:0] 发布于 2006-10-30 15:17:00
我信箱:lyll666666@163.com
辛苦啦
290 楼
wuling0722 [专家分:0] 发布于 2006-10-31 23:05:00
我也想要行吗? E-mail:wuling0722@163.com
我来回复