linklist.h

来自「java编程理发馆」· C头文件 代码 · 共 54 行

H
54
字号
typedef struct{
	int OccurTime; //事件发生时刻
	int NType;  //事件类型
}ElemType,Event; //事件的数据类型
typedef struct LNode{
	ElemType data;
	struct LNode *next;
}*Link,Lnode;//事件链表的结点类型
typedef struct{
	Link head,tail;
	int len;
}LinkList; //该链表带有头结点
void InitList(LinkList &L)
{
	L.head=new LNode;
	L.head->next=NULL;
	L.tail=L.head;
	L.len=0;
}
int DelFirst(LinkList &L, ElemType &e)
{
	Link p;
	if(L.head->next==NULL) return 0;
	p=L.head->next;
	e.OccurTime=p->data.OccurTime;
	e.NType=p->data.NType;
	L.head->next=p->next; //删除第一个元素
	if(L.tail==p) L.tail=L.head;
	delete p;
	L.len--;
	return 1; 
}
void OrderInsert(LinkList &L, ElemType e)
{
	Link p,q,r;
	p=new Lnode;
    p->data.OccurTime=e.OccurTime;
	p->data.NType=e.NType;
	q=L.head;
	r=q->next;
	while(r&&(p->data.OccurTime>r->data.OccurTime))
	{q=r;r=r->next;}
	if(!r)
	{
		L.tail->next=p;
		L.tail=p;
		p->next=NULL;
	}
	else
	{
		p->next=r;q->next=p;
	}
	L.len++;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?