关于C语言链表数据存储的有关问题,纯新手
关于C语言链表数据存储的问题,纯新手
最近研究数据结构,数据的存储结构有链式的,不过发现个问题,我们建立的链表只是在内存里建立的,并不是在硬盘里,指针也是内存指针,不可能是硬盘指针。。。用C语言存储,貌似只能用流的方式,这么存,实际上只是个文件,数据存储之后就不是程序定义的链式,就是一个文件里的一串数据,这些东西怎么存的,是什么结构,应该只有系统知道。。。
如果硬盘操作真的只能用stdio或者fstream,那么所谓的链表其实只是一个读取和写入方式,将流里的数据读到链表里,然后再进行操作,程序对硬盘的使用和内存完全不同。。。。我对系统不是很懂,是不是系统给硬盘定义的能操作的最基本单位是文件,不能直接使用硬盘地址,或者需要什么API才行????如果是这样的话我把多个文件组成链表或者树,那岂不只能用路径了,而不是指针,实际中是不是这样????向大神请教。。。。
------解决方案--------------------
一个是数据结构,一个是存储结构,是两码事,不要混在一起想。
比如数字10,你既可以存
0x31 0x30
也可以存
0x0A 0x00 0x00 0x00
要存什么,这是由你决定的。对于硬盘来说,它是种“块”存储设备,它不关心你要存内容,它只是把你最终要存的东西放到一个个的“块”中。
------解决方案--------------------
内存中指针保存内存地址
文件中指针保存文件偏移量
磁盘中指针保存簇编号
图书馆中书目保存书号
……
最近研究数据结构,数据的存储结构有链式的,不过发现个问题,我们建立的链表只是在内存里建立的,并不是在硬盘里,指针也是内存指针,不可能是硬盘指针。。。用C语言存储,貌似只能用流的方式,这么存,实际上只是个文件,数据存储之后就不是程序定义的链式,就是一个文件里的一串数据,这些东西怎么存的,是什么结构,应该只有系统知道。。。
如果硬盘操作真的只能用stdio或者fstream,那么所谓的链表其实只是一个读取和写入方式,将流里的数据读到链表里,然后再进行操作,程序对硬盘的使用和内存完全不同。。。。我对系统不是很懂,是不是系统给硬盘定义的能操作的最基本单位是文件,不能直接使用硬盘地址,或者需要什么API才行????如果是这样的话我把多个文件组成链表或者树,那岂不只能用路径了,而不是指针,实际中是不是这样????向大神请教。。。。
------解决方案--------------------
一个是数据结构,一个是存储结构,是两码事,不要混在一起想。
比如数字10,你既可以存
0x31 0x30
也可以存
0x0A 0x00 0x00 0x00
要存什么,这是由你决定的。对于硬盘来说,它是种“块”存储设备,它不关心你要存内容,它只是把你最终要存的东西放到一个个的“块”中。
------解决方案--------------------
内存中指针保存内存地址
文件中指针保存文件偏移量
磁盘中指针保存簇编号
图书馆中书目保存书号
……