односвязные списки
У меня, казалось бы, простой, но в то же время непонятный мне вопрос: вот связный список:
first --> ... --> ... --> ... --> ... --> NULL
как удалить элемент, который указывает на NULL?
У меня, казалось бы, простой, но в то же время непонятный мне вопрос: вот связный список:
first --> ... --> ... --> ... --> ... --> NULL
как удалить элемент, который указывает на NULL?
я создаю контейнер типа GtkNotebook
/* ......... */
/* Инициализируем подсистему формирования GUI */
gtk_init (&argc, &argv);
group = gtk_accel_group_new ();
/* Создаем главное окно программы */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), APPNAME);
gtk_widget_set_size_request (window, 800, 600);
/* Соединяем событие «destroy» с обработчиком сигнала */
g_signal_connect(G_OBJECT (window), «destroy», G_CALLBACK(gtk_main_quit), NULL);
/* Создаем вертикальный контейнер для меню и области редактирования */
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
/* Создаем notebook */
notebook = gtk_notebook_new ();
/* Создаем виджеты для страниц */
label_1 = gtk_label_new («Редактор»);
label_2 = gtk_label_new («Справочник»);
/* Добавляем страницы */
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_1, NULL);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_2, NULL);
/* ......... */
/* Позиционируем справочник вертикально */
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5);
/* ......... */
/* Позиционируем область редактирования вертикально */
gtk_box_pack_start(GTK_BOX(vbox), notebook, FALSE, TRUE, 0);
На первой странице должен быть обычный редактор, на второй - телефонная книга. Как осуществить возможность переключения между редактором и справочником?
Возникла проблема. Необходимо написать функции вставки/удаления элемента в связном списке, следующего после элемента с номером n. Чтобы это организовать необходимо перегрузить операцию []. Написанный мной кусок конечно же зависает. Но где ошибки?
elem operator[](int n)
{
elem *p; /* elem - структура */
p = first; /* first - указатель на начало списка */
for(int i = 0; i < n; i++)
{
if(p == NULL)
{ printf(«нет такого элемента\n»);
} else {
while(p != NULL) {
p = p->link;
}
}
}
return *p;
};
Как установить библиотеку gtk/gtk.h, если с линукса нет выхода в инет?
Ммм... Мне надо придумать примеры прог. Но замкнутый круг. Я несколько не понимаю вопросы, поэтому не могу написать нужные программы. Но в то же время я не могу разобрать вопросы без примера. Может хоть парочку подскажите?)) 1. Стандартные переопределения типов (stddef.h) на примере собственной функции strlen с возвращаемым значением типа size_t. 2. Пример фрагмента кода обхода линейного списка (это со структурой). 3. Пример фрагмента кода вставки элемента в список. 4. Пример программы, использующей переполнение буфера для подмены адреса возврата (это про стек). 5. Сильные и слабые имена программ с несколькими модулями с совпадением имен.
Я пытаюсь отделить новый диск. Освободила 98 гигов из 137, но acronis говорит, что недостаточно дискового пространства. Как это исправить?
Можете объяснить, как написать скрипт?
Само задание: Необходимо написать сценарий test_panel, вызываемый с по крайней мере одним параметром panel_program, обеспечивающую возможность: для каждого файла с расширением in в подкаталоге tests текущего каталога запустить программу заданную параметром panel_program (решающую задачу 5 по информатике) результат каждого запуска проанализировать и сформировать отчет, из которого для каждого теста должно быть ясно провален тест или прошел успешно: код возврата сравнить с значением из соответствующего файла с расширением .status вывод сравнить с содержимым файла .out Программа должна распознавать опцию -r (--report-type), позволяющая выбрать вид форматирования отчета. Необходимо предусмотреть как минимум два вида отчета (например, краткий и подробный).
То, что знаю:
#if [ $# == 0 ]
#then
# echo 'Введите параметры'
#exit 1
#fi
#сам getopt. Правда, не знаю пока, что он должен выводить, поэтому просто 1 и 2
set — `getopt r:a «$@»`
#[ $# -lt 1 ] && exit 1 # getopt failed
while [ $# -gt 0 ]
do
case «$1» in
-r) echo «1»;break;;
-report-type) echo «1»; break;;
--) echo «2»; break;;
esac
shift
done
# поиск файла с расширением in
for i in `find $i -name «*.in» -print 2> /dev/null`
do
# а тут я только понимаю смысл, что файл in нужно отправить на программу, её выход сравнить с содержимым .out ...
done
В общем, знаю я немного)
Чтобы в скрипте открыть какой-либо файл с программой, что надо написать? cd .../файл, а потом скопировать в скрипт код программы? что-то не проходит...
Вот у меня есть некая программа. Её надо модифицировать, и сделать так, чтобы результаты выводились в виде таблицы. Как это сделать?