vlist.c

来自「关于图的深度搜索的C语言代码实现」· C语言 代码 · 共 114 行

C
114
字号
#include <stddef.h>
#include "assert.h"
#include "mem.h"
#include "vlist.h"



#define T VList_T



T VList_push(T list, int n, int v, int d, int p, int k)
{
	T pos;
	NEW(pos);
	pos->number = n;
	pos->value = v;
	pos->dist = d;
	pos->path = p;
	pos->known = k;
	pos->rest = list;
	return pos;
}



T VList_pushinit(T list, int n, int v)
{
	return VList_push(list, n, v, -1, -1, 0);
}


T VList_pop(T list)
{
	if(list)
	{
		T p = list->rest;
		FREE(list);
		return p;
	}
	else
		return list;
}




/*
#include <stdio.h>
void VList_print(T list)
{
	if(list == NULL)
		return ;
	while(list)
	{
		printf("list->number = %d \t list->value = %d\n", 
			list->number, list->value);
		printf("list->dist = %d \t list->path = %d \t list->known = %d"
			"\n\n\n", 
			list->dist, list->path, list->known);
		list = list->rest;
	}
}

///*
//test the function
#include <stdio.h>
int main(void)
{	
	int i;
	
	i=1;
	printf("====== T List_push(int n, ...)======\n");
	printf( "the (%d) th to test: \n", i++ );
	{
		T list;
		list = VList_pushinit(NULL, 1, 2);
		list = VList_pushinit(list, 2, 3);
		list = VList_pushinit(list, 3, 4);
		list = VList_pushinit(list, 4, 5);
		list = VList_pushinit(list, 5, 6);
		list = VList_pushinit(list, 6, 7);
		VList_print(list);
	}
	printf("\n");
	printf("\n\n\n\n");




	i=1;
	printf("====== T List_pop(int n, ...)======\n");
	printf( "the (%d) th to test: \n", i++ );
	{
		T list;
		list = VList_pushinit(NULL, 1, 2);
		list = VList_pushinit(list, 2, 3);
		list = VList_pushinit(list, 3, 4);
		list = VList_pushinit(list, 4, 5);
		list = VList_pushinit(list, 5, 6);
		list = VList_pushinit(list, 6, 7);
		VList_print(list);
		printf("\n--------------------------\n\n\n");
		list = VList_pop(list);
		VList_print(list);
	}
	printf("\n");
	printf("\n\n\n\n");


	return 0;
}

*/

⌨️ 快捷键说明

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