我想知道是否有人可以帮我看看我在二元搜索树的搜索功能上做错了什么。由于数据的大小,必须使用迭代版本。当我打印出调试值时,我一直陷入无限循环。谢谢!
我也遇到了这个错误:
foreach ( array(
'member-title' => 'title_meta_field',
'member-phone' => 'test_page_template_metabox2',
'member-email' => 'test_page_template_metabox3',
) as $input_name => $meta_key ) {
/* Get the posted data. */
$input_value = isset( $_POST[ $input_name ] ) ? $_POST[ $input_name ] : '';
/* Get the meta value of the custom field key. */
$meta_value = get_post_meta( $post_id, $meta_key, true );
/* If a new meta value was added and there was no previous value, add it. */
if ( $input_value && '' == $meta_value )
add_post_meta( $post_id, $meta_key, $input_value, true );
/* If the new meta value does not match the old value, update it. */
elseif ( $input_value && $input_value != $meta_value )
update_post_meta( $post_id, $meta_key, $input_value );
/* If there is no new meta value but an old value exists, delete it. */
elseif ( '' == $input_value && $meta_value )
delete_post_meta( $post_id, $meta_key, $meta_value );
}
答案 0 :(得分:0)
在调用left
之前,您需要声明right
和None
不是.value
:
Python lazy evaluation表达式允许您在一行上执行此操作。 if word_search is None or word_search.value is None
会评估word_search
,如果是None
,则不评估word_search.value
。
def iterative_word_search(current, user_input):
word_search = current.root
while True:
if word_search is None or word_search.value is None:
print("not found")
break
if word_search.value == user_input:
print("found")
break
if(user_input < word_search.value):
word_search = word_search.left
elif(word_search.right != None):
word_search = word_search.right
return word_search
答案 1 :(得分:0)
感谢您的帮助! 解决了这个问题。它处理用户输入和我读入的文件。 我读过的文件有一个&#39; \ N&#39;附在它上面。这就是为什么我不断收到多个错误并且没有搜索到这个词的原因。