⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linklist.cpp

📁 C实现模拟与或非门的逻辑电路
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include "Linklist.h"

//创建新链表,返回指针,未成功返回NULL
LinkList ListCreate(bool value[], int lasttime[], int num)
{
	LinkList *p = new LinkList[num];
	for (int i=0; i < num; i++)
	{
		if ((p[i] = new LNode) == 0)//若未成功创建,返回0
		{
			for (int j=0; j < i; j++)
			{
				delete p[j];
			}
			return 0;
		}
		else
		{
			p[i]->data.value = value[i];
			p[i]->data.lasttime = lasttime[i];
			if (i != 0)
			{
				p[i-1]->next = p[i];
			}
			p[i]->next = 0;
		}
	}
	return p[0];
}

//链表头插入一节点
void ListInsertFirst(LinkList &L, const bool value, const int lasttime)
{
	LinkList temp, ptr;
	temp = new LNode;              //新建一个链表结点
	temp->data.sumtime = lasttime;
	temp->data.value = value;
	temp->data.lasttime = lasttime;
	temp->next = L;                //新建结点的指针域指向原第一个元素
	L = temp;                      //新建结点成为首节点
	ptr = temp->next;
	while (ptr->next != 0)               //修改其后总计时间的值
	{
		ptr->data.sumtime = temp->data.sumtime + ptr->data.lasttime;
		temp = ptr;
		ptr = temp->next;
	}
}

//删除某一节点,ptr是指向要删除的元素的直接前驱的指针
bool ListDelete(LinkList &L, LinkList ptr)
{
	LinkList temp;
	temp = ptr->next;
	ptr->next = ptr->next->next;
	delete temp;
	return true;
}

//在链表末尾加新的结点,ptr是指向原来的最后一个元素的指针
bool ListAdd(LinkList &ptr, const bool value, const int lasttime)
{
	LinkList temp;
	temp = new LNode;              //新建一个链表结点
	temp->data.lasttime = lasttime;
	temp->data.value = value;
	temp->next = 0;
	ptr->next = temp;
	return true;
}

⌨️ 快捷键说明

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