К основному контенту

Связанный список на C, создание и распечатка

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

struct node {
  int id;
  char *name;
  struct node *next;
};

void display(struct node *n);

int main(int argc,char** argv) {

  struct node *root, *next;
  next = malloc(sizeof(struct node*));
  root = next;
  root->id = 1;
  root->name = argv[0];

  for(int i = 1; i < argc; i++) {
    next = next->next =  malloc(sizeof(struct node*));
    next->id = i + 1;
    next->name = argv[i];
  }
  
  next->next = NULL;
  display(root);
  return 0;
}

void display(struct node *n) {
  do {
    printf("[%d] = %s\r\n", n->id, n->name);
  } while( n = n->next );
}  

Комментарии

  1. для компиляции можно использовать https://bellard.org/tcc/ следующим образом:
    tcc main.c
    тестовый запуск:
    C:\tcc\examples>main.exe 1 2 3 [1] = C:\tcc\examples\main.exe [2] = 1 [3] = 2 [4] = 3

    ОтветитьУдалить
  2. (*linked list example for freepascal *)
    program LinkedList;

    type
    point2node = ^node;

    node = record
    i: integer;
    Next: point2node;
    end;
    var
    root, tmp: point2node;
    begin
    (* init list *)
    new(tmp);
    Read(tmp^.i);
    root := tmp;
    (* read elements from std input *)
    while not EOF() do
    begin
    new(tmp^.Next);
    Read(tmp^.Next^.i);
    tmp := tmp^.Next;
    end;
    (* finalize list *)
    tmp^.Next := nil;
    (* output from head to tail *)
    while root <> nil do
    begin
    writeln('i = ', root^.i);
    root := root^.Next;
    end;
    end.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Будда не принимает форм

Будда не практикует дзен. Смотрите не видя,  слушайте не слыша,  знайте не зная.

Кирилица в Arch Linux

После вчерашних обновлений в консоли Arch Linux при выборе русской локали вместо букв печатаются белые квадратики. Очевидно, что по какой-то причине не загружается прописанный в rc.conf шрифт. Временное лекарство от этого: выполнить команду setfont cyr-sun16 . Еще у меня в момент начальной загрузки появляется рябь на экране как от сильных электромагнитных помех в ЭЛТ, хотя у меня ЖК. Может быть это как-то связано.

Сортировка массивов в groovy

Любой массив в java и groovy можно отсортировать статическим методом: Arrays.sort(c); причем это будет очень быстро сто тысяч элементов типа int сортируются за 1 секунду на celeron M 1,8 Mg. Если это массив объектов можно использовать перегруженный метод Arrays.sort(c,comporator);