INSTRUCTIONS: Read the problem below and provide the correct code. Sample input and output are also given along with the template code to be used. The programming language is Python.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
icon
Concept explainers
Question

INSTRUCTIONS: Read the problem below and provide the correct code. Sample input and output are also given along with the template code to be used. The programming language is Python.

that file. Once you are done adding elements to the filesystem, you should print the directory structure in the
specified format.
12
Users-C
Windows-C
Required modifications: 1. Insertion of a new element 2. Printing of the directory from the root node. 3.
ProgramFiles-c
Adobe-C, ProgramFiles
Steam-C, ProgramFiles
ferdie-C,Users
Parsing of the input.
Input Format
john-C,Users
guest-C, Users
Firmware-C, windows
First line is the name of the root directory.
System-C,Windows
Documents-C, Users, ferdie
Downloads-C, Users, ferdie
Second line, n, is the number of subdirectories that follows.
For each line that follows, it shows the following format:
Filename-root node, next path,next path.,.
Sample Output 0
Constraints
1. You may assume that the filenames are all alphabetical characters with no special characters.
Users
ferdie
2. n< 100
Documents
Downloads
3. The maximum path length is 20 (including the root directory).
john
guest
Windows
4. You may assume that there are no similar filenames within the same directory but may exist outside of the
directory (much like a normal filesystem).
Firmware
System
ProgramFiles
Adobe
Output Format
Steam
You should follow the output format indicated in the sample test case with the ordering of files based
chronologically.
For the spacing, use the tab (1) character for the subdirectories.
Rootdir
Subdirl
subsubdirl
subsubdir2
Subdir2
Subdir3
subsubdirl
Transcribed Image Text:that file. Once you are done adding elements to the filesystem, you should print the directory structure in the specified format. 12 Users-C Windows-C Required modifications: 1. Insertion of a new element 2. Printing of the directory from the root node. 3. ProgramFiles-c Adobe-C, ProgramFiles Steam-C, ProgramFiles ferdie-C,Users Parsing of the input. Input Format john-C,Users guest-C, Users Firmware-C, windows First line is the name of the root directory. System-C,Windows Documents-C, Users, ferdie Downloads-C, Users, ferdie Second line, n, is the number of subdirectories that follows. For each line that follows, it shows the following format: Filename-root node, next path,next path.,. Sample Output 0 Constraints 1. You may assume that the filenames are all alphabetical characters with no special characters. Users ferdie 2. n< 100 Documents Downloads 3. The maximum path length is 20 (including the root directory). john guest Windows 4. You may assume that there are no similar filenames within the same directory but may exist outside of the directory (much like a normal filesystem). Firmware System ProgramFiles Adobe Output Format Steam You should follow the output format indicated in the sample test case with the ordering of files based chronologically. For the spacing, use the tab (1) character for the subdirectories. Rootdir Subdirl subsubdirl subsubdir2 Subdir2 Subdir3 subsubdirl
def insert(self, filename, path):
"""Inserts a new file with the given path starting from the root node.
class FileNode:
def init_(self, filename, depth=0):
"This function initializes our FileNode
Args:
Args:
filename (string): The filename of the current node.
depth (int, optional): The depth of the current node,. Defaults to 0.
filename (string): The filename of the folder to be inserted.
path (string): The path of the folder to be inserted
self.root.insert(filename, path, 1)
self.filename = filename
self.depth = depth
* Hint: It is best to implement the subdirectory into a dictionary with keys being the filename and the values
being the actual object FileNode.
self.subdirectories = ()
def print_system(self):
"Prints the directory in the given format"
self.root.print_dir()
def delete(self):
"This function overrides the default deletion of the current object and also deletes the subdirectories"""
for v in self.subdirectories.values ():
if
-name == "__main__":
root_dir = input()
n = int(input())
filenames = []
del v
self.subdirectories.clear ()
def insert(self, filename, path, depth):
"This function inserts the file into a specific path.
If the path does not exist, then the folder is not created.
for i in range(n):
# Part C. Implement parsing of input lines.
pass
Args:
filename (string): The filename of the current folder to be inserted
path (lists of string): The path of the filename
depth (int): The depth of the node to be inserted.
##
I DO NOT MODIFY BELOM ###
fs = FileSystem(root_dir)
for f, p in filenames:
fs.insert(f, p)
* Part A. Implement the insertion of a new file here. If the given path does not exist, then you may skip the
file.
fs.print_system()
def print_dir(self):
"This prints the current directory and accesses the subdirectories as well.""
* Part B. Implement the printing of the directory here.
* You should access subdirectories first before moving to the next folder within the same directory.
: Do not modify this object ##
class Filesystem:
definit (self, root_dir):
"This is the FileSystem implementation. A root node is required once an instance is created
Args:
root_dir (string): Filename of the root node for the file system.
self.root = FileNode (root_dir)
def delete_(self):
"Deletes the filesystem by deleting the root and deleting the subdirectories automatically due to the override
function.""
del self.root
Transcribed Image Text:def insert(self, filename, path): """Inserts a new file with the given path starting from the root node. class FileNode: def init_(self, filename, depth=0): "This function initializes our FileNode Args: Args: filename (string): The filename of the current node. depth (int, optional): The depth of the current node,. Defaults to 0. filename (string): The filename of the folder to be inserted. path (string): The path of the folder to be inserted self.root.insert(filename, path, 1) self.filename = filename self.depth = depth * Hint: It is best to implement the subdirectory into a dictionary with keys being the filename and the values being the actual object FileNode. self.subdirectories = () def print_system(self): "Prints the directory in the given format" self.root.print_dir() def delete(self): "This function overrides the default deletion of the current object and also deletes the subdirectories""" for v in self.subdirectories.values (): if -name == "__main__": root_dir = input() n = int(input()) filenames = [] del v self.subdirectories.clear () def insert(self, filename, path, depth): "This function inserts the file into a specific path. If the path does not exist, then the folder is not created. for i in range(n): # Part C. Implement parsing of input lines. pass Args: filename (string): The filename of the current folder to be inserted path (lists of string): The path of the filename depth (int): The depth of the node to be inserted. ## I DO NOT MODIFY BELOM ### fs = FileSystem(root_dir) for f, p in filenames: fs.insert(f, p) * Part A. Implement the insertion of a new file here. If the given path does not exist, then you may skip the file. fs.print_system() def print_dir(self): "This prints the current directory and accesses the subdirectories as well."" * Part B. Implement the printing of the directory here. * You should access subdirectories first before moving to the next folder within the same directory. : Do not modify this object ## class Filesystem: definit (self, root_dir): "This is the FileSystem implementation. A root node is required once an instance is created Args: root_dir (string): Filename of the root node for the file system. self.root = FileNode (root_dir) def delete_(self): "Deletes the filesystem by deleting the root and deleting the subdirectories automatically due to the override function."" del self.root
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Operators
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education