public Object get(int i) throws Exception{ // TODO Auto-generated method stub DupNode p=head.next; int j=0; while(!p.equals(head)&&j<i) { p=p.next; ++j; } if(j>i||p.equals(head)) { throw new Exception("第"+i+"个元素不存在"); } return p.data; }
时间: 2024-04-21 13:24:50 浏览: 14
在获取元素的方法中,首先创建一个变量`p`,并将其指向头节点的下一个节点。接着,使用一个循环来遍历链表,找到第`i`个元素所在的节点。循环的条件是当前节点不等于头节点并且计数器`j`小于传入的下标`i`。
在循环中,递增计数器`j`并且将当前节点指向下一个节点,直到找到第`i`个元素所在的节点。
最后,如果计数器`j`大于传入的下标`i`或者当前节点等于头节点,说明要获取的元素不存在,抛出异常。否则,返回当前节点的数据值。
这样就完成了获取指定位置元素的操作。
相关问题
public void remove(int i) throws Exception { // TODO Auto-generated method stub if(i<0 || i>length()-1) { throw new Exception("下标不合法"); } DupNode node = head; int j = 0; while(!node.next.equals(head) && j<i){ j++; node = node.next; } node.next = node.next.next; node.next.prior = node; }
在移除元素的方法中,首先会检查传入的下标是否合法,如果不合法则抛出异常。然后使用一个循环来遍历链表,找到要移除的节点的前一个节点。循环的条件是当前节点的下一个节点不等于头节点并且计数器j小于传入的下标i。
在循环中,计数器j递增并且当前节点指向下一个节点,直到找到要移除的节点的前一个节点。
最后,将要移除的节点的前一个节点的`next`指针指向要移除节点的下一个节点,将要移除节点的下一个节点的`prior`指针指向要移除节点的前一个节点。
这样就完成了移除指定位置的节点的操作。
解释一下这段代码public class ReturnTicketImpl implements ReturnTicketService { @Override public List<TTicket> getAllTickets() { // TODO Auto-generated method stub return null; } @Override public TTicket getTicketById(int ticketId) { // TODO Auto-generated method stub return null; } @Override public boolean deleteTicket(int ticketId) throws SQLException { return new ReturnTicketDao().deleteTicket(ticketId); } @Override public List<TicketOrder> displayTicket(String username) throws SQLException { // TODO Auto-generated method stub return new DisplayTicketDao().dispalyTicket(username); } @Override public List<TicketOrder> dispalyTicketID(int ticketID) throws SQLException { // TODO Auto-generated method stub return new ReturnTicketDao().dispalyTicketID(ticketID); } }
这段代码定义了一个名为"ReturnTicketImpl"的类,该类实现了"ReturnTicketService"接口。在这个类中,有几个方法被重写并且需要实现具体的功能,包括:
1. getAllTickets()方法:返回一个TTicket类型的List,该方法还没有实现具体的功能,需要根据具体的需求来实现。
2. getTicketById(int ticketId)方法:返回一个TTicket对象,该方法还没有实现具体的功能,需要根据具体的需求来实现。
3. deleteTicket(int ticketId)方法:返回一个布尔值,表示是否成功删除指定ticketId的车票,该方法调用了ReturnTicketDao类中的deleteTicket()方法。
4. displayTicket(String username)方法:返回一个TicketOrder类型的List,表示展示指定用户名下的所有订单信息,该方法调用了DisplayTicketDao类中的dispalyTicket()方法。
5. dispalyTicketID(int ticketID)方法:返回一个TicketOrder类型的List,表示展示指定ticketID的订单信息,该方法调用了ReturnTicketDao类中的dispalyTicketID()方法。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)