我在两个链表中有Customer对象,队列和服务。每个都有派对规模的变量。服务队列具有随机分配的等待时间。我需要一个函数来求和并返回队列中的客户数量。我认为这意味着对等待列表LinkedList中每个Customer对象中表示参与方大小的整数求和。
我需要一个函数来求和并返回所服务的客户总数。这可能意味着对所服务的Customer对象的LinkedList中的每个Customer对象中指示参与方大小的整数求和。
我不知道下面哪个链接适合我的情况(什么时候使用哪个(。尽管如此,我还是尝试过,但都未能成功实施。
对于循环:计算链表中的所有节点
通过迭代和递归:https://www.geeksforgeeks.org/find-length-of-a-linked-list-iterative-and-recursive/
/*Returns count of nodes in linked list */
public int count(){
int count=0;
for(Customer n = ???; n != null; n = n.next){count++;}
return count;
}
// /* Returns count of nodes in linked list */
// public int getLineSize(Customer cust)
// {
// // Base case
// if (cust == null)
// return 0;
// // Count is this customer plus rest of the list
// return 1 + getLineSize(cust.next);
// }
//
// /* Wrapper over getLineSize() */
// public int getCount()
// {
// return getLineSize();
// }
我没有得到任何结果,因为我无法生成合理的、没有语法错误的代码。运行时错误将是进度。
LinkedLists中的Customer对象有一个先前定义的getWait()
和getParty()
方法,用于获取对象的随机分配等待时间和Party变量大小的值。
函数必须采用链表。
使用LinkedList类的getFirst方法获取LinkedList中的第一个元素。
你用一个累加器变量来求和。
使用n != null;
和n = n.next
作为停止条件,并在for循环中进行迭代。
你从Customer n = (Customer) ll.getFirst()
开始。它只是使用n更短,并且需要显式强制转换。也许是因为函数不知道您的两个链接列表都有Customer类型的元素。
返回链接列表中的等待总数:
public int sumWait(LinkedList ll){
int sumWait = 0;
for(Customer n = (Customer) ll.getFirst(); n != null; n = n.next){
sumWait = sumWait + n.getWait();
}
return sumWait;
}
返回链接列表中各方的总和
public int sumCust(LinkedList ll){
int sumCust = 0;
for(Customer n = (Customer) ll.getFirst(); n != null; n = n.next){
sumCust = sumCust + n.getParty();
}
return sumCust;
}