• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 532
  • Last Modified:

Linking Linked List To Hard Disk

A simple linked list--

struct node{
int data;
node *next;
}


Generally when we create LL it gets created in RAM , what if I want to store it hard disk so that I can add / delete more nodes to it.



0
sinha_anshul26
Asked:
sinha_anshul26
  • 3
  • 3
2 Solutions
 
sin_Commented:
Anshu,

Since it doesn't make any sense to store the pointers in the hard disk, you can store the data of the linked list into the hard disk by writing method like:

void makePersistent(NODE* root)
{
   // get each element and store the values in some file.
}

NODE* getPersistentList()
{
   //Read from the file.
   //create the link list and associated next ptrs.
   //return it.
}

The bottom line is, you store the data of the linked list, not the ptrs.
0
 
sinha_anshul26Author Commented:
Hi Sin_
Just to confirm I got it right...
you  mean to say,(In other words) that there is no way that we can store data at a specific location of the Hard disk (using pointers)?

I read somewhere that OS does this to manage files using FAT file system
0
 
manish_regmiCommented:
In Fat it is not pointers of address but the pointers of block.

for eg. if a file occupies four blocks in block 3 5 6 9,

fat 3 points to 5 points to 6 points to 9.
it means a 32 bit fat value has block number 5.

No there is no way you can store pointers in disk. In virtual memory system you get different address each time you run (esp in dynamically allocated memory).

regards
Manish Regmi
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
sin_Commented:
That's right Anshu! Compiler generates the virtual memory addresses, which  are mapped to a physical page address by MMU while running the application. Therefore, everytime you run the application, you will find that your pointer is pointing to a different address.

Just imagine if you store this address; it may be a garbage next time. Persistence mechanism works by storing the content; you can reconstruct the data structure while reading it back.

Hope it helps.

0
 
sinha_anshul26Author Commented:
>>Hope it helps
It Helped alot ...thank you both of you
0
 
sinha_anshul26Author Commented:
Oh !! I choose the other way round sin_ 's  answer should be  Accepted and manish's assisted.
But any way thank you both for  helping


0
 
sin_Commented:
Not a problem! I too didn't know anything about FAT ptrs :)

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now