Dev-C++创建项目

Dev-C++创建项目,第1张

Dev-C++创建项目 数据结构写自己的头文件

写此篇原因:数据结构中,用具体算法实现时,基本 *** 作需要反复使用。建立自己的头文件,可以在不同的项目中很方便的调用自己在头文件中包含的基本 *** 作函数。

以下用约瑟夫问题举例,其中运用了数据结构中的线性表以及其链式存储结构。

-约瑟夫main.c文件

#include
#include "list.h"

//主函数
int main()
{
	//printf("------------ < 约瑟夫(Joseph)>----------------nn");
	linkList head;
	int m,n;
	//printf("输入n请输入报数上限值m和总人数n:");
	scanf("%d%d",&m,&n);
	head = CreateList(n);
	DeleteElem(head, m, n);
	return 0;
 } 

注意:自己编写的头文件应当要用引号 " " 括起来,
而库文件的应用尖括号< >括起来,不过库文件用双引号也可以。

  • list.h文件
#ifndef LIST_H
#define LIST_H

typedef struct LNode LNode ;
typedef struct LNode* linkList;
linkList CreateList(int n); //建立一个带头结点的单向循环链表 (且有头指针)
void DeleteElem(linkList pt,int m,int n);//从链表中依次删除要出列的人的结点,并且打印出列人的序号

#endif

说明:该文件主要是包括了各种自定义的函数、自定义的结构体类型的声明等。

  • list.c文件
#include 
#include "list.h"

typedef struct LNode{
	int num; //数字序号 
	int pass;//个人密码 
	struct LNode *next;//指向下一个结点的指针 
}LNode , *linkList;

linkList CreateList(int n)//建立一个带头指针的单向循环链表 
{
	linkList L;
	int i;
	LNode *p1,*head;
	p1 = (linkList)malloc(sizeof(LNode));
	L  = p1;
//	printf("请依次输入这%d个人持有的密码(均小于30):",n);
	for(i = 1 ; i <= n ; ++i)//依次存入n个人的序号和密码 
	{
		p1->next = (linkList)malloc(sizeof(LNode));//p->next 是当前要存入密码的结点 
		p1->next->num = i;
		scanf("%d",&p1->next->pass) ;	
		p1 = p1->next;	
	}
	p1->next = L->next ;
	head = L->next;
	free(L);
	return head; 
 } 

void DeleteElem(linkList pt,int m,int n)//从链表中依次删除要出列的人的结点,并且打印出列人的序号
{
	int i;
	linkList p;
//	printf("n输出n出列的序号依次为:");
	while(pt->next != pt)
	{
		for(i = 1 ; inext;
		}
		printf("%d ",pt->num);  //打印出列的人的序号
		m = pt->pass;
		p->next = pt->next ;  //将出列人的前后结点进行连接
		free(pt) ;   //释放出列人所在的结点 
		pt = p->next;
	}
	printf("%d",pt->num); //直接打印最后一个人的序号
	free(pt); 
 } 

说明:该文件主要编写了具体的函数,以及结构体类型(即对自定义的函数以及结构体类型进行了定义)

三个文件建立以后,我是放在了同一目录下,当然也可以按自己的需要放置。其中的.h.gch文件是自动生成,目的是为了提高下次编译时的速度。不过,如果我们修改了.h文件,.h.gch文件不会自动更改。我们可以选择删除这个文件,或者将 Makefile文件 的 clean 目标项 修改为 rm -f *.o *.h.gch, 然后重新编译。

完成三个文件以后可以,可以建立项目,来解决约瑟夫问题了。

1.首先点击文件->新建->项目

2.按图选择,项目名字可以自定义。确定以后,我将该项目与刚才的三个文件保存到了同一目录下。

3.然后右击篮框内的“约瑟夫”,找到添加,将刚刚的三个文件添加到当前的约瑟夫项目下。


4.这样之后,删除其中无用的“未命名”,再点击篮框,即点击主函数,选择编译并运行(F11),即可。


5.运行主函数的结果

,初步建立一个简单的项目就完成了。希望自己后续的数据结构能用这种方法,建立自定义的数据结构的基本 *** 作函数文件。bye~

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4948394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存