数据结构代写 | 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\[\]

SLLC -\> 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\[\]

SLLC -\> 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'>

相关推荐
郝学胜_神的一滴7 小时前
干货版《算法导论》17:双数极值配对与卡牌手牌编码最优解
数据结构·算法
看浪的路人7 小时前
第5讲:代码审查与 Bug 检测
开发语言·windows·python
我不会插花弄玉8 小时前
10.list【由浅入深-C++】
数据结构·c++·list
molaoye9 小时前
Windows修改系统环境变量不需要重启电脑之骚操作
windows
wabs66618 小时前
关于图论【卡码网117.软件构建的思考】
数据结构·算法·软件构建·图论·卡码网
wling030118 小时前
vasp虚频计算-python脚本
开发语言·windows·python·vasp计算
Tongzhi202619 小时前
从部署到运维:通芝科技无感考勤一体机的全流程效率解析
运维·数据结构·科技·算法·贪心算法
小玮看世界1 天前
[Python]线段树与二分法
数据结构·算法
在世修行1 天前
Windows 上 Docker Desktop 部署 MySQL + TDengine 全过程(含 WSL 报错与镜像加速排障实战)
windows·mysql·docker·tdengine
Richard.Wong1 天前
Windows IIS 服务器部署 Vue3 前端项目详细流程
服务器·前端·windows