ptr->next->next->next->... | spin on the RITZ

ptr->next->next->next->...

リーヨ T-Pistons を聞きながら。

結構子供向けの物が好きだったりします。

精神的に幼稚だからです

//シンプルなリストプログラム

#include <stdio.h>
#include <stdlib.h>

typedef struct _node{
    int data;
    struct _node *next;
} NODE;

void Insert(int n, NODE **head);
void Print(NODE *head);

int main(void)
{
    int n, menu = 1;
    NODE *head = NULL;

    while (menu==1 || menu == 2) {
        printf("(1)Insert  (2)Print  (3)end\n->");
        scanf("%d", &menu);
        switch (menu) {
            case 1:
                printf("data : ");
                scanf("%d", &n);
                Insert(n, &head);
                break;
            case 2:
                Print(head);
                break;
        }
    }

    return 0;
}

void Insert(int n, NODE **head)
{
    NODE *new_node = (NODE*)calloc(1, sizeof(NODE));
    NODE *ptr = *head;
    new_node->data = n;

    if (ptr == NULL || ptr->data > n) {
        *head = new_node;
        new_node->next = ptr;
        return;
    }
    for ( ;ptr->next != NULL;ptr = ptr->next)
        if (ptr->next->data > n)
            break;
    new_node->next = ptr->next;
    ptr->next = new_node;
}

void Print(NODE *head)
{
    for (;head != NULL;head = head->next)
        printf("%d ", head->data);
    printf("\n");
}




非常に初歩的なリストプログラム(っていうか作る必要なくね?)

まぁ、代替できるんならしろよ。って感じですが


C++でリストを使うんならlistかvectorでしょうが、listは特定の値に直接アクセス出来ないんだろうか

まぁ、できたらリストじゃないか・・・

Print関数をlist使うかvector使うか考えると、vectorの方がいいのかな?


むっずかしいなぁもう。



追記:

list<int>::iterator it;とか宣言して「*it」とかやればアクセス出来るかも