blockquote>int main() { // insert code here... treeNode **node; createTree(node); preOrder(*node); return 0; }
должно быть
int main() { treeNode *node; createTree(&node); preOrder(node); return 0; }
, иначе в createTree
*node = ...
запись в недопустимом местоположении (* узел не установлен в действительный указатель в main )Ваш ввод должен быть
ABD***CEFG*****
для завершения:pi@raspberrypi:/tmp $ gcc -pedantic -Wextra b.c pi@raspberrypi:/tmp $ ./a.out ABD***CEFG****** ABDCEFGpi@raspberrypi:/tmp $
О вашем замечании:
[ 1117] да, я не знаю, какая левая, какая праваяblockquote>
практический способ - нарисовать дерево.
Очень простой способ:
void draw(treeNode *node, int level, char empty) { if (node != NULL) { draw(node->right, level+1, '/'); for (int i = 0; i != level; ++i) putchar(' '); printf("%c\n", node->val); draw(node->left, level+1, '\\'); } else { for (int i = 0; i != level; ++i) putchar(' '); printf("%c\n", empty); } }
, если я изменю main на:
int main() { treeNode *node; createTree(&node); preOrder(node); putchar('\n'); draw(node, 1, ' '); return 0; }
Компиляция и выполнение:
pi@raspberrypi:/tmp $ gcc -pedantic -Wextra b.c pi@raspberrypi:/tmp $ ./a.out ABD***CEFG***** ABDCEFG / C / E / F / G \ A / B / D \
Символ '/' указывает, что справа ничего нет, а символ \ \ указывает, что слева ничего нет
[править] Некоторые способы нарисовать самое красивое дерево можно найти в C Как «нарисовать» ”Двоичное дерево для консоли
Я допустил ошибку на входе, если я использую ваше существо
ABD***CE**FG***
, результат будет:/tmp % ./a.out ABD***CE**FG*** ABDCEFG / F / G \ C / E \ A / B / D \
Работает в FF, но не в IE7. Я разобрался с двумя вариантами работы. Если вы не ссылаетесь на текстовое поле по имени, а по положению или по какой-то причине, если вы установили фокус дважды.
Первый:
$("input:text:second").focus();
Второй:
$("#TextBox2").focus().focus();
I think the problem is that you are moving the popup and calling focus before the dialog is fully created.
Try using the dialog's open
event instead:
$(document).ready(function() {
$("#popup").dialog({
open: function(){
$(this).parent().appendTo(jQuery("form:first"));
$("#TextBox2").focus();
}
});
});
вы также можете классифицировать текстовое поле, так как asp.net меняет идентификаторы управления, чтобы избежать конфликтов имен.
$(".mytextbox").focus();
в качестве примера ... это, конечно, противоречит цели семантики, но семантика не смешивается хорошо с веб-формами.
Попробуйте использовать setTimeout ("$ ('# TextBox2'). Focus ();", 100);
, иногда для диалога и других методов пользовательского интерфейса jQuery займет несколько секунд, чтобы фактически выполнить задачи, которые мы назначаем кодом.
Надеюсь, это поможет. Этот обходной путь помог во многих моих приложениях.