只是想知道是否可以将方法标记为待在pharo中实现,就像您可以在Java中使用“ todo”一样
如果没有这样的东西,我真的很难跟踪到pharo的完成情况
我正在用C开发一个项目,我需要释放已分配的内存,并在退出之前关闭所有打开的文件.
我决定实现一个clean能完成所有这些工作的函数并调用它,atexit因为有很多可能的退出场景.
问题是atexit不允许我用参数设置函数,所以我不能发送到clean需要在进程结束时释放的指针.
所以我需要将每个可能需要释放的指针声明为全局变量,并且每个可能在程序中保持打开的文件?(我已经做过但看起来不太好)或者确实存在类似的功能atexit,允许发送参数?或者更多可能还有另一种我失踪的方式?
关于图上的BFS遍历只是一个简单而愚蠢的问题
我在许多站点上发现了BFS的伪代码几乎是这样的:
BFS (Graph, root):
create empty set S
create empty queue Q
add root to S //mark as visited here
Q.enqueue(root)
while Q is not empty:
current = Q.dequeue()
if current is the goal:
return current
for each node n that is adjacent to current:
if n is not in S:
add n to S //mark as visited here
Q.enqueue(n)
Run Code Online (Sandbox Code Playgroud)
我只是发现在给定节点出队列后将其标记为已访问,而不是在对一个给定节点进行标记时,将其标记为访问的节点稍微简单些,因为在后一种方法中,我们将需要编写一个额外的步骤。我知道这不是一件大事,但我想将一个节点标记为在一个地方而不是两个地方访问更有意义。更简洁,更容易记住甚至学习。
修改后的版本将如下所示:
BFS (Graph, root):
create empty set S
create empty queue Q
Q.enqueue(root)
while Q is not empty: …Run Code Online (Sandbox Code Playgroud) 我需要反转用指针表示法制作的2d数组.
要清楚,如果数组是
A B C D E
F G H I J
K L M N O
Run Code Online (Sandbox Code Playgroud)
我需要:
E D C B A
J I H G F
O N M L K
Run Code Online (Sandbox Code Playgroud)
我的代码到目前为止:
#include <stdio.h>
#include <stdlib.h>
#define HEIGHT 3
#define WIDHT 7
void print (char *imprimir)
{
int i,j;
for (i=0;i<HEIGHT;i++)
{
for (j=0;j<WIDHT;j++)
{
printf ("%2c",*(imprimir+(i*WIDHT)+j));
}
printf ("\n");
}
}
int main()
{
//FILLING THE ARRAY
char *array=malloc(WIDHT*HEIGHT);
int i,j;
for (i=0;i<HEIGHT;i++)
{
for (j=0;j<WIDHT;j++)
{ …Run Code Online (Sandbox Code Playgroud) c ×2
arrays ×1
atexit ×1
fclose ×1
free ×1
graph-theory ×1
pharo ×1
pseudocode ×1
smalltalk ×1