数据结构代写 | CS261 Data Structures Assignment 3

本次美国代写主要为数据结构的代码修改assignment

CS261 Data Structures

Assignment 3

Your Very Own Linked List and Binary Search Practice

Part 1 -- Summary and Specific Instructions

  1. Implement Deque and Bag ADT interfaces with a Singly Linked List data structure by

completing the skeleton code provided in the file sll.py. Once completed, your

implementation will include the following methods:

add_front(), add_back()

insert_at_index()

remove_front(), remove_back()

remove_at_index()

get_front(), get_back()

remove()

count()

slice()

  1. We will test your implementation with different types of objects, not just integers.

We guarantee that all such objects will have correct implementations of methods

eq, lt, gt, ge, le, and str.

  1. The number of objects stored in the list at any given time will be between 0 and 900

inclusive.

  1. Variables in the SLNode and LinkedList classes are not marked as private. For this

portion of the assignment, you are allowed to access and change their values

directly. You are not required to write getter or setter methods for them.

  1. RESTRICTIONS: You are not allowed to use ANY built-in Python data structures or

their methods. All implementations in this part of the assignment must be

done recursively. You are not allowed to use while- or for- loops in this part

of the assignment.

  1. This implementation must be done with the use of front and back sentinel nodes.

add_front(self, value: object) -> None:

This method adds a new node at the beginning of the list (right after the front sentinel).

Example #1:

lst = LinkedList()

print(lst)

lst.add_front('A')

lst.add_front('B')

lst.add_front('C')

print(lst)

Output:

SLL[]

SLL[C -> B -> A]

add_back(self, value: object) -> None:

This method adds a new node at the end of the list (right before the back sentinel).

Example #1:

lst = LinkedList()

print(lst)

lst.add_back('C')

lst.add_back('B')

lst.add_back('A')

print(lst)

Output:

SLL[]

SLL[C -> B -> A]

insert_at_index(self, index: int, value: object) -> None:

This method adds a new value at the specified index position in the linked list. Index 0

refers to the beginning of the list (right after the front sentinel).

If the provided index is invalid, the method raises a custom "SLLException". Code for the

exception is provided in the skeleton file. If the linked list contains N nodes (not including

sentinel nodes in this count), valid indices for this method are [0, N] inclusive.

Example #1:

lst = LinkedList()

test_cases = [(0, 'A'), (0, 'B'), (1, 'C'), (3, 'D'), (-1, 'E'), (5, 'F')]

for index, value in test_cases:

print('Insert of', value, 'at', index, ': ', end=")

try:

lst.insert_at_index(index, value)

print(lst)

except Exception as e:

print(type(e))

Output:

Insert of A at 0 : SLL [A]

Insert of B at 0 : SLL [B -> A]

Insert of C at 1 : SLL [B -> C -> A]

Insert of D at 3 : SLL [B -> C -> A -> D]

Insert of E at -1 : <class 'main.SLLException'>

Insert of F at 5 : <class 'main.SLLException'>

相关推荐
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
阿白的白日梦4 天前
winget基础管理---更新/修改源为国内源
windows
埃博拉酱8 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
唐宋元明清21889 天前
.NET 本地Db数据库-技术方案选型
windows·c#
加号39 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
琢磨先生David9 天前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
tryCbest9 天前
Windows环境下配置pip镜像源
windows·pip
呉師傅9 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
百事牛科技9 天前
保护文档安全:PDF限制功能详解与实操
windows·pdf
一个人旅程~9 天前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑