
Existem vários pacotes de pseudocódigo para LaTeX. Qualquer um deles pode descrever coisas como um nó de lista vinculada em C:
struct Node
{
Node* parent;
// other stuff
};
ou terei que inventar algumas macros personalizadas
Responder1
Uma abordagem possível com algorithm2e
. Eu defini um bloco "semelhante a um programa" MyStruct
que começa com a palavra-chave Struct
, depois digita o nome da estrutura, depois gera a palavra-chave contains
e o final da estrutura é indicado com a palavra-chave end
:
\SetKwProg{MyStruct}{Struct}{ contains}{end}
Tudo isso pode ser personalizado de acordo com sua preferência.
O uso dentro de um algoritmo é algo como:
\MyStruct{Node}{
Node* parent\;
int size\;
\tcp{other stuff}
}
Aqui está um exemplo simples e completo e uma saída:
\documentclass{article}
\usepackage{algorithm2e}
\SetAlgoLined
\SetKwProg{MyStruct}{Struct}{ contains}{end}
\begin{document}
\begin{algorithm}[H]
\MyStruct{Node}{
Node* parent\;
int size\;
\tcp{other stuff}
}
\end{algorithm}
\end{document}
Esta definição respeita as opções globais do pacote e também as opções locais, então você pode usar, por exemplo, [noend,noline]
como opções de pacote para desabilitar a composição da end
(s) palavra(s)-chave e a linha vertical que delimita o bloco:
\documentclass{article}
\usepackage[noend,noline]{algorithm2e}
\SetAlgoLined
\SetKwProg{MyStruct}{Struct}{ contains}{end}
\begin{document}
\begin{algorithm}[H]
\MyStruct{Node}{
Node* parent\;
int size\;
\tcp{other stuff}
}
\end{algorithm}
\end{document}