数据结构代写 | 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'>

相关推荐
brucelee1863 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
切糕师学AI4 小时前
环形缓冲区(Ring Buffer / Circular Buffer)详解:原理、优势、应用与高性能实现
数据结构·环形缓冲区
WolfGang0073215 小时前
代码随想录算法训练营 Day50 | 图论 part08
数据结构·算法·图论
卷Java6 小时前
GPTQ vs AWQ vs GGUF:模型量化工具横向测评
开发语言·windows·python
晚枫歌F7 小时前
最小堆定时器
数据结构·算法
x-cmd7 小时前
[260429] x-cmd v0.9.1:一键开启 DeepSeek-V4-Pro Max 模式 + 1M 上下文;顺手重构了 uuid 模块
windows·重构·uuid·claude·curl·x-cmd·deepseek-v4-pro
今夕资源网8 小时前
Windows 上安装 Claude Code并且接入DeepSeekV4-Pro的Max模式和激活1M上下文
windows
嫩萝卜头儿8 小时前
2 - 复杂度收尾 + 链表经典OJ
数据结构·算法·链表·复杂度
样例过了就是过了9 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
HLJ洛神千羽9 小时前
电脑右下角显示【周几或星期几】和【上下午】方法
windows