如何使用比较常见的动态数据结构

类别:编程语言 点击:0 评论:0 推荐:

指针和结构
结构可以包含指针,当然也可以是一个指向同一结构其他实例的指针:
例如:
struct node
{
        struct node *next_ptr;
        int value;
}
仔细思考一下,现在我们发现,如果我们可以动态创建 node ,那我们在内存中可以保存的数据就可以达到无限大。所以我们需要的是一个这样的程序,当用户说“我想要一个新节点”时,程序就可以创建它。当然不能用光内存。
因此我们可以创建如下程序:
#include <stdio.h>

struct node
{
        struct node *next_ptr;
        int value;
};

struct node *first_ptr;

void add_list(int item)
{
        struct node *new_item_ptr = malloc(sizeof(struct node));
        (*new_item_ptr).value = item;
        (*new_item_ptr).next_ptr = first_ptr;
        first_ptr = new_item_ptr;
}

int main()
{
        int j = 0;
        int i = j;
        struct node *current_ptr;
        scanf("%d", &i);
        for(; j<=i; j++) add_list(j);
        current_ptr = first_ptr;
        while(current_ptr != NULL)
        {
                printf("%d\n", (*current_ptr).value);
                first_ptr = (*first_ptr).next_ptr;
                free(current_ptr);
                current_ptr = NULL;
                current_ptr = first_ptr;
        }
        current_ptr = first_ptr;
        return 0;
}

摘自:辣妹子社区-C/C++论坛

本文地址:http://com.8s8s.com/it/it22514.htm