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」とかやればアクセス出来るかも