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

📄 list.h

📁 nachos系统作业 实现线程系统 实现一个电梯模拟 附实验报告
💻 H
字号:
// list.h //	Data structures to manage LISP-like lists.  ////      As in LISP, a list can contain any type of data structure//	as an item on the list: thread control blocks, //	pending interrupts, etc.  That is why each item is a "void *",//	or in other words, a "pointers to anything".//// Copyright (c) 1992-1993 The Regents of the University of California.// All rights reserved.  See copyright.h for copyright notice and limitation // of liability and disclaimer of warranty provisions.#ifndef LIST_H#define LIST_H#include "copyright.h"#include "utility.h"// The following class defines a "list element" -- which is// used to keep track of one item on a list.  It is equivalent to a// LISP cell, with a "car" ("next") pointing to the next element on the list,// and a "cdr" ("item") pointing to the item on the list.//// Internal data structures kept public so that List operations can// access them directly.class ListElement {   public:     ListElement(void *itemPtr, int sortKey);	// initialize a list element     ListElement *next;		// next element on list, 				// NULL if this is the last     int key;		    	// priority, for a sorted list     void *item; 	    	// pointer to item on the list};// The following class defines a "list" -- a singly linked list of// list elements, each of which points to a single item on the list.//// By using the "Sorted" functions, the list can be kept in sorted// in increasing order by "key" in ListElement.class List {  public:    List();			// initialize the list    ~List();			// de-allocate the list    void Prepend(void *item); 	// Put item at the beginning of the list    void Append(void *item); 	// Put item at the end of the list    void *Remove(); 	 	// Take item off the front of the list    void Mapcar(VoidFunctionPtr func);	// Apply "func" to every element 					// on the list    bool IsEmpty();		// is the list empty?         // Routines to put/get items on/off list in order (sorted by key)    void SortedInsert(void *item, int sortKey);	// Put item into list    void *SortedRemove(int *keyPtr); 	  	// Remove first item from list  private:    ListElement *first;  	// Head of the list, NULL if list is empty    ListElement *last;		// Last element of list};#endif // LIST_H

⌨️ 快捷键说明

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