你能在C中有一个具有相同结构元素的结构吗?我在C中实现二叉搜索树的第一次尝试如下:
#include <stdio.h>
struct binary_tree_node {
int value;
struct binary_tree_node *left = null;
struct binary_tree_node *right = null;
};
main() {
struct binary_tree_node t;
t.value = 12;
struct binary_tree_node y;
y.value = 44;
t.left = &y;
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这段代码有什么问题,任何帮助都会受到赞赏.我意识到在C中有关于二进制搜索实现的其他问题,但我试图用我自己的代码从头开始解决这个问题(当然还有一些指导).谢谢!
摔跤我的头脑模型跟随
我最终会跟随,但我仍然相信,必须有更好的解决方案.
class User < ActiveRecord::Base
has_many :contact_groups
def get_all_contacts
self.contact_groups.each do |group|
contacts << group.users
end
end
class ContactGroup < ActiveRecord::Base
has_and_belongs_to_many :users
end
Run Code Online (Sandbox Code Playgroud) 我需要查询单元先决条件的自引用关系.
我知道你需要使用两个连接,我选择我的列,然后加入它自己?
SELECT u.unit_code,
u.name + ' is a prerequisite of ' + u.name AS unit_prerequisite
FROM units AS u
Run Code Online (Sandbox Code Playgroud)
到目前为止,这就是我所拥有的,不确定我的连接必须在哪里制作?甚至不确定第一部分是否正确.
我在'父'映射的实体(用户)上有一个自引用的一对多关联,并由'children'反转.我希望能够删除不是父母的用户.我的实体声明如下.
class User implements UserInterface
{
/**
* @ORM\Column(name="id", type="smallint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
(...)
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="parent")
*/
protected $children;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
protected $parent;
public function __construct()
{
$this->parentId = null; // Default value for column parent_id
$this->children = new ArrayCollection();
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试删除不是父项的子用户时,我收到以下错误.
带有消息'SQLSTATE [23000]的异常'PDOException':完整性约束违规:1451无法删除或更新父行:外键约束失败
我尝试过级联删除,如下所示.
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="parent", cascade={"persist", "remove"})
*/
protected $children;
Run Code Online (Sandbox Code Playgroud)
无论如何都会得到同样的错误.有帮助吗?
我想将条件格式(用红色填充单元格)应用于列F,I,L中的所有行.E,F,I,H,L,K列包含数字值.
条件是如果F3 < E3用红色填充F3,用红色I3 < H3填充I3,用红色L3 < K3填充L3,依此类推.它将继续如下:F4 <E4 true,I4 <H4 true,L4 <K4 true.
样本表:
我该怎么做?我想我必须在条件格式化的单元格中进行自我引用.
我怎样才能生成以下内容:
class A extends B<A> {}
Run Code Online (Sandbox Code Playgroud)
我坚持构造ParameterizedTypeName来添加超类,我似乎无法在构造之前找到引用A类型的方法...
有什么指针吗?这是可能吗?
我试图执行修改后的龙形曲线从业务计费16日在哈斯克尔无限名单.
该列表由True和组成False.我们从一些列表开始s0:
s1 = s0 ++ [False] ++ (map not . reverse) s0s2 = s1 ++ [False] ++ (map not . reverse) s1s3 = s2 ++ [False] ++ (map not . reverse) s2通常
sn = s(n-1) ++ [0] ++ (map not . reverse) s(n-1)
= s0 ++ [0] ++ (f s0) ++ [0] ++ (f (s0 ++ [0] ++ (f s0))) ++ ...
where f = …Run Code Online (Sandbox Code Playgroud) haskell sequence infinite recursive-datastructures self-reference
GHC是否允许以下内容永久阻止是否有任何有用的理由:
list = 1 : tail list
Run Code Online (Sandbox Code Playgroud)
在列表迭代器/生成器中看起来有点复杂,我们应该能够做一些更有用的事情:
error "Infinitely blocking list"[1,1]解释2:似乎有可能在进入生成器获取元素时N,我们可以将生成器内的所有自引用限制为列表但结束于N-1(我们注意到read N范围内部generate N并返回列表结尾).这是一种使用范围的简单死锁检测.
显然,这对于上面的玩具示例没有用处,但它可以允许更有用/优雅的有限,自引用列表定义,例如:
primes = filter (\x -> none ((==0).mod x) primes) [2..]
Run Code Online (Sandbox Code Playgroud)
请注意,任何更改都应该只影响当前导致无限块的列表生成器,因此它们似乎是向后兼容的语言更改.
忽略了稍微做出这种改变所需的GHC复杂性,这种行为会破坏我所遗漏的任何现有语言行为吗?关于这种变化的"优雅"的任何其他想法?
另请参阅另一个可以从下面获益的BFS示例.对我来说,这似乎比其他一些解决方案更实用/更优雅,因为我只需要定义bfsList 是什么,而不是如何生成它(即指定终止条件):
bfs :: (a -> Bool) -> (a -> [a]) -> [a] -> Maybe a
bfs predf expandf xs = find predf bfsList
where bfsList = xs ++ concatMap expandf bfsList
Run Code Online (Sandbox Code Playgroud) 为什么我们在自引用结构中使用指针?这是义务还是不是?如果没有,我们在结构与正常结构定义中指向struct的指针有什么优势呢?
typedef struct _Struct {
struct _Struct* next; // do we really need this pointer?
} Struct;
Run Code Online (Sandbox Code Playgroud)