您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。