コード例 #1
0
ファイル: profile.c プロジェクト: bsmr-misc-forks/kroc
/*{{{  treenode *add_profcountupd_nd(int count, treenode *tptr) */
treenode *add_profcountupd_nd (ProfTabEntry *profcount, treenode *tptr)
{
	#if 0
	const SOURCEPOSN locn = LocnOf (tptr);
	treenode *argls = addtofront (newintconstant (profcount->entry_number, S_INT),
				      NULL);
	treenode *procnamend = get_predefname (PD_UPDATE_PROFCOUNT);
	return newcnode (S_SEQ, locn, newlistnode (S_LIST, locn,
						   newinstancenode (S_PINSTANCE, locn, procnamend, argls), newlistnode (S_LIST, locn, tptr, NULL)));
	#else
	return NULL;
	#endif
}
コード例 #2
0
ファイル: lru.c プロジェクト: deepw/FirstRepo
int refer_page (int pagenumber, int hash[], Queue *q)
{

	listnode *node = hash[pagenumber];

	if (node) {
		/* Page was found in the hash. Move the page to the top */

		if (q->head == node) {
			/* already in front nothing to do */
		} else if (q->tail == node) {
			/* remove this node from tail and put it in the front */
			tail = tail->left;
			node->right = q->head;
			q->head->left = node;
			q->head = node;
		} else {
			node->left->right = node->right;
			node->right->left = node->left;

			node->right = q->head;
			q->head->left = node;
			q->head = node;
		}
	} else {
		node = newlistnode(pagenumber);
		Enqueue (node, q);
		hash[pagenumber] = node;
	}
	return 0;
}
コード例 #3
0
ファイル: vertical_order_sum.c プロジェクト: deepw/FirstRepo
List *
vert_sum (Treenode *root) {
	List *Head = newlistnode(0);
	vertical_sum (root, Head);

	while (Head->prev) {
		Head = Head->prev;
	}

	return Head;
}
コード例 #4
0
ファイル: vertical_order_sum.c プロジェクト: deepw/FirstRepo
int 
vertical_sum (Treenode *root, List *head)
{
	head->value += root->data;

	if (root->left) {
		if (head->prev == NULL) {
			head->prev = newlistnode(0);
			head->prev->next = head;
		}
		vertical_sum (root->left, head->prev);
	}
	if (root->right) {
		if (head->next == NULL) {
			head->next = newlistnode (0);
			head->next->prev = head;
		}
		vertical_sum (root->right, head->next);
	}
	return ;
}