示例#1
0
struct list_node * creat_list(int num[], int size)
{
    int i = 0;
    struct list_node *list = NULL;
    struct list_node *lastnode = NULL;

    for (i = 0; i < size; i++) {
        struct list_node *newnode = NULL;
        newnode = (struct list_node *)malloc(sizeof(struct list_node));
        if (newnode == NULL) {
            destory_list(list);
        }

        newnode->item = num[i];
        newnode->next = NULL;
        if (i == 0) {
            list = newnode;
        }
        else {
            lastnode->next = newnode;
        }
        lastnode = newnode;
    }

    return list;
}
示例#2
0
文件: main.c 项目: 54shady/linuxc
int main(int argc, char *argv[])
{
	single_list_pt list = NULL;
	data_type data;
	list_node_pt tmp;

	list = create_list();

	show_menu();
	while (1)
	{
		switch (select_menu())
		{
			case 'm':
				show_menu();
				break;
			case 'i':
				printf("Enter data:");
				scanf("%d%*c", &data);
				insert_node_front(list, data);
				break;
			case 's':
				printf("List:");
				show_datas(list);
				break;
			case 'x':
				printf("Enter node data:");
				scanf("%d%*c", &data);
				tmp = search_node(list, data);
				if (NULL != tmp)
					delete_node(list, tmp);
				else
					printf("Node %d not found\n", data);
				break;
			case 'l':
				printf("len = %d\n", list_len(list));
				break;
			case 'q':
				exit(0);
				break;
			case 'd':
				destory_list(list);
				break;
			default:
				show_menu();
				break;
		};
	}

	return 0;
}
示例#3
0
int main(int argc, char const *argv[])
{
    int array[10] = {7, 4, 1, 2, 3, 0, 6, 9, 8, 5};
    struct list_node *list = NULL;
    struct list_node *node = NULL;

    list = creat_list(array, 10);
    display_list(list);
    
    node = find_nth2last(list, 2);
    if (node != NULL) {
        printf("nth to last item = %d\n", node->item);
    }

    destory_list(list);

    return 0;
}
int main (void) {
	char 	data[20] ;
	Node 	head = {0,NULL}  ;

	fgets(data , sizeof (data) , stdin) ;
	data[strlen(data)-1] = 0  ;

	create_list (&head , data) ;
	show_list (&head);

	int 	k ;

	scanf ("%d",&k) ;
	del_kth_node (&head , k);
	show_list (&head) ;
	destory_list (&head) ;

	return 0 ;
}
示例#5
0
int main(int argc, char const *argv[]) {
	struct LinkList* list = create_list();

	append_list(list, 1);
	insert_list(list, 2, 0);
	push_list(list, 10);
	show_list(list);

	int data = pop_list(list);
	printf("pop data is %d\n", data);
	show_list(list);

	push_list(list, 10);
	push_list(list, 11);
	push_list(list, 10);
	push_list(list, 11);
	show_list(list);

	remove_list(list, 1);
	show_list(list);

	remove_data_list(list, 10);
	show_list(list);

	remove_all_data_list(list, 11);
	show_list(list);

	struct Node* node = get_node_list(list, 0);
	printf("data is %d\n", node->data);

	int index = search_list(list, 2);
	printf("index is %d\n", index);

	destory_list(list);
	return 0;
}
示例#6
0
int linearlist_test()
{
	linearlist *ll = (linearlist *)calloc(1, sizeof(linearlist));

	STATUS status = init_list(ll);

	if(status != SUCC){
		printf("初始化线性表失败 \n");
		return -1;
	}

	append_list(ll, 1);
	append_list(ll, 2);
	append_list(ll, 3);
	insert_list(ll, 2, 10);
	append_list(ll, 100);

	//遍历线性表
	if(!empty_list(ll)){
		int _i = 0;
		for(; _i<ll->length; _i++){
			printf( "list[%d] = %d \n", _i, *(ll->elem+_i) ) ;
		}
	}

	BOOL flag = traverse_list(ll, increment);
	if(flag)	printf("all complte \n");
	else	printf("someone not invoke, please check \n");
	//遍历线性表
	if(!empty_list(ll)){
		int _i = 0;
		for(; _i<ll->length; _i++){
			printf( "list[%d] = %d \n", _i, *(ll->elem+_i) ) ;
		}
	}

	/*

	int del_index = 3;
	ELE_TYPE r;

	status = delete_list(ll, del_index, &r);

	if(status == SUCC){
		printf("delete index %d ok , the value is %d \n", del_index, r);
		//遍历线性表
		if(!empty_list(ll)){
			int _i = 0;
			for(; _i<ll->length; _i++){
				printf( "list[%d] = %d \n", _i, *(ll->elem+_i) ) ;
			}
		}
	}

	*/

	/*

	ELE_TYPE r , search = 100;
	BOOL flag = prior_elem(ll, search, &r) ;
	if(flag)
		printf("%d prev is %d \n", search, r);
	else
		printf("not found or first point %d \n", search);

	search = 2;
	flag = next_elem(ll, search, &r);
	if(flag)
		printf("%d next is %d \n", search, r);
	else
		printf("not found or last point %d \n", search);

	*/

	/*

	//获取一个元素
	ELE_TYPE val = 0;
	BOOL flag = get_item_list(ll, 2, &val);
	if(flag){
		printf("%d \n", val);
	}

	*/

	//clear_list(ll);

	/*

	//获取某值在线性表中首次出现位置
	ELE_TYPE search = 20;
	printf("please entry a integer : ");
	scanf("%d", &search);

	int f_index = locate_elem(ll, search, compare_callback);

	if(f_index!=0){
		printf("%d locate is %d \n", search, f_index);
	}else{
		printf("%d not found \n", search);
	}

	*/

	destory_list(ll);

	return 0;
}
示例#7
0
static int cleanup_suite(void)
{
        destory_list(ps_list);
        return CUE_SUCCESS;
}