算法指针和参考

算法指针和参考

我正在寻找一种简洁的方法/最佳实践来编写使用指针和引用的块。我过去algorithmic曾成功过,但这是我第一次尝试用指针编写一些东西。C/C++ 中的代码片段如下所示:algorithmic

Node *n = &root;
n->value = input;

我尝试的 LaTeX 方法看起来不太正确:

\STATE $n \leftarrow \& \mathrm{root}$
\STATE $n \rightarrow \mathrm{value} \leftarrow \mathrm{input}$

呈现为:

latex 指针和参考

我觉得有点奇怪,因为同时使用了&和 左右箭头,看起来好像有两个东西指向 mathrm。问题似乎与\leftarrow用于赋值的 冲突,但这\leftarrow似乎是常见的做法,所以我想遵循它。

当然,我也可以重写算法以不使用指针,但这会使代码块增加近 2 倍,而且我正在努力突破页面限制。:) 当然,这里的最终目标是为了可读性。

答案1

正如您所说,使用左箭头进行赋值会使使用右箭头有点问题。这里有一些建议,我非常喜欢下标版本,但这取决于您是否需要C.->下标的其他用途。我还将 & 做得更小,因为我不喜欢大号的 :-) 如果您确实保留,\rightarrow您可能应该使用它{\rightarrow},这样它就会使用更近的间距,特别是与赋值不同的间距。

在此处输入图片描述

\documentclass{article}

\usepackage{algorithmic}

\begin{document}

\begin{algorithmic}
\STATE $n \leftarrow \& \mathrm{root}$
\STATE $n \rightarrow \mathrm{value} \leftarrow \mathrm{input}$
\STATE
\STATE $n \leftarrow  {\scriptstyle\&}\mathrm{root}$
\STATE $n _\mathrm{value} \leftarrow \mathrm{input}$
\STATE
\STATE $n \leftarrow {\scriptstyle\&} \mathrm{root}$
\STATE $n {\scriptscriptstyle\searrow} \mathrm{value} \leftarrow \mathrm{input}$


\end{algorithmic}

\end{document}

相关内容