当前位置:主页   - 电脑 - 程序设计 - C/C++
数据结构C语言实现之线性表
来源:网络   作者:    更新时间:2010-09-26
收藏此页】    【字号    】    【打印】    【关闭

#include<stdio.h>
#include<stdlib.h>
typedefintelemType;
/************************************************************************/
/*        以下是关于线性表顺序存储操作的16种算法            */
/************************************************************************/
structList{
   elemType*list;
   intsize;
   intmaxSize;
};
voidagainMalloc(structList*L)
{  
   /*空间扩展为原来的2倍,并由p指针所指向,原内容被自动拷贝到p所指向的存储空间*/
   elemType*p=realloc(L->list,2*L->maxSize*sizeof(elemType));
   if(!p){  /*分配失败则退出运行*/
     printf("存储空间分配失败! ");
     exit(1);
   }
   L->list=p;  /*使list指向新线性表空间*/
   L->maxSize=2*L->maxSize;  /*把线性表空间大小修改为新的长度*/
}
/*1.初始化线性表L,即进行动态存储空间分配并置L为一个空表*/
voidinitList(structList*L,intms)
{
   /*检查ms是否有效,若无效的则退出运行*/
   if(ms<=0){
     printf("MaxSize非法! ");
     exit(1);  /*执行此函数中止程序运行,此函数在stdlib.h中有定义*/
   }
   L->maxSize=ms;  /*设置线性表空间大小为ms*/
   L->size=0;
   L->list=malloc(ms*sizeof(elemType));
   if(!L->list){
     printf("空间分配失败! ");
     exit(1);
   }
   return;
}
/*2.清除线性表L中的所有元素,释放存储空间,使之成为一个空表*/
voidclearList(structList*L)
{
   if(L->list!=NULL){
     free(L->list);
     L->list=0;
     L->size=L->maxSize=0;
   }
   return;
}
/*3.返回线性表L当前的长度,若L为空则返回0*/
intsizeList(structList*L)
{
   returnL->size;
}
/*4.判断线性表L是否为空,若为空则返回1,否则返回0*/
intemptyList(structList*L)
{
   if(L->size==0){
     return1;
   }
   else{
     return0;
   }
}
/*5.返回线性表L中第pos个元素的值,若pos超出范围,则停止程序运行*/
elemTypegetElem(structList*L,intpos)
{
   if(pos<1

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明