devc如何自定义头文件并使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1.首先建一个项目,把主文件和头文件都放进去
2.如果文件内的代码没有错,那么直接开始运行就好。
主函数的模块:
#include
#include
#include"SqList.h"
int main()
{
int i;
ElemType e;
SqList sq;
InitList_Sq(sq); /*初始化顺序表sq*/
ListInsert_Sq(sq,1,1); /*插入元素*/
ListInsert_Sq(sq,2,2);
ListInsert_Sq(sq,3,3);
ListInsert_Sq(sq,4,4);
ListInsert_Sq(sq,5,5);
ListInsert_Sq(sq,6,6);
printf("线性表:");ListTraverse_Sq(sq);
printf("长度:%d\n",ListLength_Sq(sq));
i=3;GetElem_Sq(sq,i,e);
printf("第%d个元素:%d\n",i,e);
e=5;
printf("元素%d是第%d个元素\n",e,LocateElem_Sq(sq,e));
i=4;printf("删除第%d个元素\n",i);
ListDelete_Sq(sq,i,e);
printf("线性表:");ListTraverse_Sq(sq);
DestoryList_Sq(sq);
system("pause");
return 1;
}
头文件:
#ifndef SQLIST_H
#define SQLIST_H
#include
#include
#include
#define LIST_INIT_SIZE 50
#include "SqList.h"
//顺序表操作函数的实现
typedef int ElemType;
typedef struct
{ ElemType *elem; //存放顺序表元素,教材中使用了指针来表示顺序表的基地址,允许扩展
int listsize; //在本处代码中使用了基本数组data,不允许扩展
int length; //存放顺序表的长度
} SqList;
int InitList_Sq(SqList &L) /*初始化线性表*/
{
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem) return(-2);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return 1;
}
int DestoryList_Sq(SqList &L)
{
if(L.elem!=NULL)
free(L.elem);
return 1;
}
int ListLength_Sq(SqList L) /*求线性表长度*/
{
return L.length;
}
int GetElem_Sq(SqList L,int i,ElemType &e) /*求线性表中第i个元素*/
{
if (i<1 || i>L.length) /*无效的i值*/
return 0;
else
{
e=L.elem[i-1];
return 1;
}
}
int LocateElem_Sq(SqList L,ElemType e) /*按值查找*/
{
int i=0;
while (L.elem[i]!=e) /*查找值为x的第1个结点*/
i++;
if (i>L.length)
return(0); /*未找到*/
else
return(i+1);
}
int ListInsert_Sq(SqList &L,ElemType e,int i) /*插入元素*/
{
int j;
if (i<1 || i>L.length+1) /*无效的参数i*/
return 0;
for (j=L.length;j>i;j--) /*将位置为i的结点及之后的结点后移*/
L.elem[j]=L.elem[j-1];
L.elem[i-1]=e; /*在位置i处放入x*/
L.length++; /*线性表长度增1*/
return 1;
}
int ListDelete_Sq(SqList &L,ElemType &e,int i) /*删除元素*/
{
int j;
if (i<1 || i>L.length) /*无效的参数i*/
return 0;
j=i-1;
e=L.elem[i-1];
for (j=i;j
L.elem[j-1]=L.elem[j];
L.length--; /*线性表长度减1*/
return 1;
}
void ListTraverse_Sq(SqList L) /*输出线性表*/
{
int i;
for (i=1;i<=L.length;i++)
printf("%d ",L.elem[i-1]);
printf("\n");
}
#endif
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。