我想把分子储存在记忆里。这些可以是简单的分子:

Methane (CH4)
C-H bond-length: 108.7 pm
H-H angle: 109 degrees

还有更复杂的分子,如扑热息痛(C8H9NO2):
如何在记忆中储存分子,包括所有的键长和键角?
在数组中存储原子结构是个好主意吗?还是有更好的办法?

最佳答案

它看起来像某种图形数据结构:
分子有一组原子
原子通过键连接:
键可以是双、单或三重键
债券有一定长度
键有角
它是一个循环图(例如,这个例子有一个交替的单键和双键环)
这不是一个有向图(如果两个原子结合在一起,从哪一端接近键并不重要)
通常,您会将一个图存储为节点(原子)数组和边(键)数组。节点和边都是指向结构的指针。
节点(原子)将存储元素。
边缘(绑定)将存储以下字段:
一对指向节点的指针
键类型(双/单)
键长和键角
因为它不是有向图,你的数据结构会认为A和B之间的边相当于B和A之间的边。也就是说,对于给定的原子对,你的边数组会包含A到B之间的边,而不是B到A之间的边。

10-04 20:50