Comparing two linked lists
Hi all,
I am nearing the completion of a program and have been snagged on a problem. The problem is have 2 lists, i want to see if list2 contains all the elements list1 conatins. If it does return true, if not return false. I have tried and tried but cant come up with a simple solution. Hopefully someone out there is able to help me.
Cheers Dave.
It either does or doesn't have elements, and if it
does it contains more then 2, i have tested for
this.
I also put a System.out.println(list); before the if
statement which returns the list [ ] being empty but
then carries out the statement even though the list
is == null.Nope, a list variable is either null, or not. When the reference is not
null, the list can be empty, can contain one element or more elements.
Being empty does not imply null. Try something like this:if (list != null && list.size() > 1) //remove two elementskind regards,
Jos
Similar Messages
-
Merging two linked lists of integers that are sorted
hey guys,
i need to write a method to merge two linked lists of integers that are sorted into ascending order. the results should be a third linked list that is the sorted combination of the original lists.
can someone help me start this? Basically, the method will be taking in two sorted linked lists of integers and merge them into one big sorted linked list.
Im just looking to get some algorithm ideas and maybe one or two lines of pseudocode to get me started.
thanksi can't destroy the original lists so im gonna need
to create a new sorted list. then since both of the
lists im using are sorted, i'll just have to copy one
of them into the new list i created. Then i will get
an item from the unused list and search that node in
the new copied list and insert in appropriate
position using the two Nodes...example(prev and
curr).That can work. I'd probably do it by initializing a new list and compare the first items in each of the original lists, inserting the smaller in my new list and advancing to the next element in the original list from which I took the item, repeating the process until I copied each item from both original lists. Don't forget to take into account that you will reach the end of one list before the other. -
How to concatenate two linked lists?
Can anyone help me with this? I'm stuck. I'm trying to concatenate two linked lists. I've created a method that adds a node to the beginning of a list and a second method to concatenate. My first method works, but not my second...
First method:
public static Node insertFirst(Node head, Node node){
Node newNode = new Node(); // declare and initialize newNode.
newNode = node; // store the new item in the new node.
newNode.link = head; // newNode.link points to the head.
head = newNode; // update head to be newNode.
return head;
}Here is where I have my problem:
public static Node mergeTwoLists(Node a, Node b){
Node heada = a;
Node headb = b;
if(heada == null)
return headb; //if heada is null then returns list headb.
else if(headb == null)
return heada; //if headb is null then returns list heada.
else if(heada == null && headb == null) //if both lists are null, returns null.
return null;
else if(heada.link == null){ //only one element in heada.
headb = insertFirst(b, a); // inserts the element in heada into headb.
return headb;
}//end else if(heada.link == null).
else if(headb.link == null){ //only one element in headb.
heada = insertFirst(a,b); // inserts the element in headb into heada.
else {
mergeTwoLists(heada.link, headb);
return heada;
}//end else
return heada;
}//end mergeTwoLists method.I think in this method I'm only adding the nodes if there is only one node in one of the lists. But if there are more than one element in a list...I'm confused as to how to code the last else statement that contains the recursive call.
Can someone help?
Thanks
aiki985Can't you just point the tail of A to the head of B?
I don't think I'd do this recursivly at all. Use a
while look to find the last node in A and then link
it to whatever the first element in B is.
while(A.next != null){
A = A.next;
A.next = B;
Java that up a bit and check for nulls and it should
work.o.k. thanks...let me try that. It does seem awkward recursively...
aiki985 -
VORowImpl problem - comparing two ROW[] lists
Hi Everyone,
I have a huge proble right now, I'm trying to compare two VO list with the same values, this is because one it's attached to an advancedtable in the xml page wich the user can change some values, and the other one is from the values of the table but from the DB, the reason is to made a validation to compare the original values from the DB with the list from the tabla and update only the rows that the users made changes in their values, here's my code for a better explain of what I'm doing:
public void saveChanges(){
OADBTransactionImpl oadbtransactionimpl = (OADBTransactionImpl)getDBTransaction();
Row[] rows1 = getAppVO1().getAllRowsInRange();
Row[] rows2 = getDBVO1().getAllRowsInRange();
for(int i = 0; i < rows1.length; i++){
int j = i;
//Colections to compare
//r1: colection from the app
//r2: colection from BD
AppVORowImpl r1 = (AppVORowImpl) rows1;
DBVORowImpl r2 = (DBVORowImpl) rows2[j]; //<--- here in the second iteration appears the following error:
// "oracle.apps.fnd.framework.OAException: java.lang.ArrayIndexOutOfBoundsException: 1"
//variables string to check if got changes in the column
String columnAPP = r1.getId().toString();
String columnBD = r2.getId().toString();
//'if' that validates changes
if(!columnAPP.equals(columnBD)){
//String variable SP
StringBuilder procedureCall = new StringBuilder();
//calling to SP
try{
procedureCall.append("... stored proc...");
OracleCallableStatement oraclecallablestatement = (OracleCallableStatement)oadbtransactionimpl.createCallableStatement(procedureCall.toString(), -1);
oraclecallablestatement.execute();
getOADBTransaction().commit();
}catch(SQLException sqlexception){
System.err.println("SQL Exception: "+ sqlexception.getMessage());
getOADBTransaction().rollback();
throw OAException.wrapperException(sqlexception);
}catch(Exception e){
System.err.println("Exception: "+ e.getMessage());
getOADBTransaction().rollback();
throw OAException.wrapperException(e);
the first iteration works fine, but the second and futher shows an exception error, what can I do to make this method works?
I'll be pending to your answers, I really hope you can help me with this one
Regards,
MentorHere is the dump code for you. Code you have to write in AmImpl and call the same from Controller class.
AMImpl Code
public void executeBothViewObjects() //Calls this method from Controller *ProcessRequest*
OAViewObject vo = (OAViewObject)getMainViewObjectVO1();
OAViewObject dvo = (OAViewObject)getDBViewObjectVO1();
if (vo != null && dvo != null)
//1st VO
dvo.setWhereClauseParams(null);
//Set where clause if Any dvo.setWhereClauseParam(0,xx);
dvo.executeQuery();
//2nd VO
vo.setWhereClauseParams(null);
//Set where clause if Any dvo.setWhereClauseParam(0,xx);
vo.executeQuery();
public void compareViewObject() // Calling this method to compare Attribute of both View Object *Process Form Request*
OAViewObject vo = getMainViewObjectVO1();
OAViewObject OrigVO = getDBViewObjectVO1();
MainViewObjectVORowImpl rowi = null;
DBViewObjectVORowImpl rowii = null;
int fetchedRowCount = vo.getRowCount();
int OriginalfetchedRowCount = OrigVO.getRowCount();
RowSetIterator originalSelectIter = OrigVO.createRowSetIterator("originalSelectIter");
RowSetIterator selectIter = vo.createRowSetIterator("selectIter");
if (fetchedRowCount > 0 && OriginalfetchedRowCount >0)
selectIter.setRangeStart(0);
selectIter.setRangeSize(fetchedRowCount);
originalSelectIter.setRangeStart(0);
originalSelectIter.setRangeSize(OriginalfetchedRowCount);
for (int i = 0; i < fetchedRowCount; i++)
rowi = (MainViewObjectVORowImpl)selectIter.getRowAtRangeIndex(i);
rowii = (DBViewObjectVORowImpl)originalSelectIter.getRowAtRangeIndex(i);
//Compare Attribute here
if((!(rowi.getRoleStartDate().equals(rowii.getRoleStartDate()))
// Comparing Start date here of both View Object
else if(((rowi.getRoleEndDate().equals(rowii.getRoleEndDate()))
// Comparing End date here of both View Object
}Thanks
--Anil
http://oracleanil.blogspot.com/ -
Comparing two SharePoint Lists, three variables in each
I have a data set in a SharePoint list, Column 1, 2, 3,4.
I have a second data set in a SharePoint list, with the same columns 1-3 in it.
I would like to create a workflow (I think) that when a new record is added to the first data set, it checks the second data set to see if there is a record with the same matching three records. If there is a match it would change column 4 in the first file
to "TRUE".
Looking for some help here... I know how to do a look up for one value, and even a lookup to look at two different values independently, but this lookup needs to make sure that all three columns in the record are a match.
ThanksHi,
I'm assuming you mean for List 1 you have four fields and an additional field with the date (MyDate for example).
And that in List 2 you have three fields plus two more date fields (EffectiveDate and ExpirationDate for example)
For this scenario I would create 2 workflow variables:
1. Combined (string) - same as before that builds up the three fields in List1
2. List2Id - that gets the ID of the List Item in List2 that matches (if none match then List2Id will be 0) using the following settings:
Data source: List2
Field from source: ID (As List Item Id - IMPORTANT)
Field: Combined
Value:Variable:Combined
Then use an if condition to check:
If Variable: List2Id not equals 0
then within this if condition create another sub if condition to check the following:
If Current Item:MyDate is greater than or equal to List2:EffectiveDate
AND Current Item:MyDate is less than or equal to List2:ExpirationDate
If both conditions are true then update field four in List1 to True.
Settings to get List2:EffectiveDate are below:
Data source: List2
Field from source: EffectiveDate (As Date/Time)
Field: ID
Value:Variable: List2Id (Return field as: Item Id - IMPORTANT)
Settings to get List2:ExpirationDate are below:
Data source: List2
Field from source: ExpirationDate(As Date/Time)
Field: ID
Value:Variable: List2Id (Return field as: Item Id - IMPORTANT) -
How to create two linked lists (Master/Detail or Parent/Child)
I need to create a couple of related lists in a Master/Detail approach. Users are supposed to choose one "Master" Option, and "Detail" column should be refreshed to display only the items that are strictly related to the chosen option
in "Master". Any posible solution?
Thanks in advance.One option is to connect two web parts. This will give you option button for your master list web part and based on the value selected your results will be filtered in the detailed list web part. Here is the example. Though it is for SP 2010 it should work
the same in SP 2013.
http://sarahlhaase.wordpress.com/2012/05/21/connecting-web-parts-with-a-selector-and-a-detail-pane-sharepoint-2010-version/
Second option is with some customization using Jquery.
http://summit7systems.com/creating-a-parentchild-list-relationship-in-sharepoint-2013/
Amit -
Concatination of 2 linked list objects of characters
Pleas help me to solve the following problem by using Java.
Problem: Write a program that concatenates two linked list objects of characters. The program should include method concatenate, which takes references to both list objects as arguments and concatenates the second list to the first list.
Thanking u,
RiponThis assumes that your class is 'ListConcatenate' and that you have set up your two link-lists.
public void concatenate( ListConcatenate l1, ListConcatenate l2)
if ( l1.isEmpty1() || l2.isEmpty2() )
System.out.printf( "Empty %s or Empty %s\n", name1,name2 );
return;
System.out.printf( "%s concatenated with %s is: ", name1,name2 );
NodeOne current1 = l1.firstNode1;
NodeTwo current2 = l2.firstNode2;
while (current1 != null )
System.out.printf( "%s ", current1.data1.toString() + current2.data2.toString() );
current1 = current1.nextNode1;
current2 = current2.nextNode2;
} -
Write two functions to find the the number of elements in a linked list?
I am trying to Write two functions to find the the number of elements in a linked list. One method using recursion and One method using a loop...
//The linked List class is Represented here.
public class lp {
public int first;
public lp rest;
public lp(int first1, lp rest1)
first = first1;
rest = rest1;
The program i wrote so far is
import java.util.*;
import linklist.lp;
public class listCount{
//loop function
public static void show_list(lp list)
int counter = 0;
while(list != null)
list = list.rest;
counter++;
System.out.println ("length computed with a loop:" + counter);
//recursive function
public static int recursive_count(lp list)
if (list.first == null)
return 0;
else
return recursive_count(list.rest) + 1;
//main method
public static void main (String args[])
lp list1 = new lp(1, new lp(2, new lp(3, null)));
show_list(list1);
System.out.println("length computed with a recursion:" +
recursive_count(list1));
at the if (list.first == null) line i get the error " incomparable types:
int and <nulltype>" I know this is a beginners error but please
help...What should I do?byte, char, short, int, long, float, double, and boolean are primitives, not objects. They have no members, you cannot call methods on them, and they cannot be set to or compared with null.
-
Splitting a Linked List at a Given Node, into Two Sublists??
My code just will not work!! Any help would be appreciated! My problem is in the last method SplitAt. These are the conditions set and my code:
Splitting a Linked List at a Given Node, into Two Sublists
a. Add the following as an abstract method to the class
LinkedListClass:
public void splitAt (LinkedListClass<T> secondList, T item);
//This method splits the list at the node with the info item into two sublists.
//Precondition: The list must exist.
//Postcondition: first and last point to the first and last nodes of the first sublist,
// respectively. secondList.first and secondList.last point to the first
// and last nodes of the second sublist.
Consider the following statements:
UnorderedLinkedList<Integer> myList;
UnorderedLinkedList<Integer> otherList;
Suppose myList points to the list with the elements 34, 65, 18, 39, 27, 89, and 12 (in this order). The statement
myList.splitAt(otherList, 18);
splits myList into two sublists: myList points to the list with elements 34 and 65, and otherList points to the sublist with elements 18, 39, 27, 89, and 12.
b. Provide the definition of the method splitAt in the class UnorderedLinkedList. Also write a program to test your method.
public class UnorderedLinkedList<T> extends LinkedListClass<T>
//Default constructor
public UnorderedLinkedList()
super();
//Method to determine whether searchItem is in
//the list.
//Postcondition: Returns true if searchItem is found
// in the list; false otherwise.
public boolean search(T searchItem)
LinkedListNode<T> current; //variable to traverse
//the list
boolean found;
current = first; //set current to point to the first
//node in the list
found = false; //set found to false
while (current != null && !found) //search the list
if (current.info.equals(searchItem)) //item is found
found = true;
else
current = current.link; //make current point to
//the next node
return found;
//Method to insert newItem in the list.
//Postcondition: first points to the new list
// and newItem is inserted at the
// beginning of the list. Also,
// last points to the last node and
// count is incremented by 1.
public void insertFirst(T newItem)
LinkedListNode<T> newNode; //variable to create the
//new node
newNode =
new LinkedListNode<T>(newItem, first); //create and
//insert newNode before
//first
first = newNode; //make first point to the
//actual first node
if (last == null) //if the list was empty, newNode is
//also the last node in the list
last = newNode;
count++; //increment count
//Method to insert newItem at the end of the list.
//Postcondition: first points to the new list and
// newItem is inserted at the end
// of the list. Also, last points to
// the last node and
// count is incremented by 1.
public void insertLast(T newItem)
LinkedListNode newNode; //variable to create the
//new node
newNode =
new LinkedListNode(newItem, null); //create newNode
if (first == null) //if the list is empty, newNode is
//both the first and last node
first = newNode;
last = newNode;
else //if the list is not empty, insert
//newNode after last
last.link = newNode; //insert newNode after last
last = newNode; //set last to point to the
//actual last node
count++;
}//end insertLast
//Method to delete deleteItem from the list.
//Postcondition: If found, the node containing
// deleteItem is deleted from the
// list. Also, first points to the first
// node, last points to the last
// node of the updated list, and count
// is decremented by 1.
public void deleteNode(T deleteItem)
LinkedListNode<T> current; //variable to traverse
//the list
LinkedListNode<T> trailCurrent; //variable just
//before current
boolean found;
if ( first == null) //Case 1; the list is empty
System.err.println("Cannot delete from an empty "
+ "list.");
else
if (first.info.equals(deleteItem)) //Case 2
first = first.link;
if (first == null) //the list had only one node
last = null;
count--;
else //search the list for the given info
found = false;
trailCurrent = first; //set trailCurrent to
//point to the first node
current = first.link; //set current to point to
//the second node
while (current != null && !found)
if (current.info.equals(deleteItem))
found = true;
else
trailCurrent = current;
current = current.link;
}//end while
if (found) //Case 3; if found, delete the node
count--;
trailCurrent.link = current.link;
if (last == current) //node to be deleted
//was the last node
last = trailCurrent; //update the value
//of last
else
System.out.println("Item to be deleted is "
+ "not in the list.");
}//end else
}//end else
}//end deleteNode
public void splitAt(LinkedListClass<T> secondList, T item)
LinkedListNode<T> current;
LinkedListNode<T> trailCurrent;
int i;
boolean found;
if (first==null)
System.out.println("Empty.");
first=null;
last=null;
count--;
else
current=first;
found=false;
i=1;
while(current !=null &&!found)
if(current.info.equals(secondList))
found= true;
else
trailCurrent=current;
i++;
if(found)
if(first==current)
first=first;
last=last;
count=count;
count=0;
else
first=current;
last=last;
last=null;
count = count- i+1;
count = i-1;
else
System.out.println("Item to be split at is "
+ "not in the list.");
first=null;
last=null;
count=0;
}I dont have a test program at all. The program is supposed to prompt for user input of numbers. (it does) Take the input and end at input of -999 (it does). Then it asks user where it wants to split list (it does). When I enter a number it does nothing after that. I am going to post updated code and see if that helps along with all the classes. Thanks!
This is the class to prompt:
import java.util.*;
public class Ch16_ProgEx6
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
UnorderedLinkedList<Integer> list
= new UnorderedLinkedList<Integer>();
UnorderedLinkedList<Integer> subList =
new UnorderedLinkedList<Integer>();
Integer num;
System.out.println("Enter integers ending with -999.");
num = console.nextInt();
while (num != -999)
list.insertLast(num);
num = console.nextInt();
System.out.println();
System.out.println("list: ");
list.print();
System.out.println();
System.out.println("Length of list: " + list.length());
System.out.print("Enter the number at which to split list: ");
num = console.nextInt();
list.splitAt(subList, num);
System.out.println("Lists after splitting list");
System.out.print("list: ");
list.print();
System.out.println();
System.out.println("Length of list: " + list.length());
System.out.print("sublist: ");
subList.print();
System.out.println();
System.out.println("Length of sublist: " + subList.length());
}This is the ADT:
public interface LinkedListADT<T> extends Cloneable
public Object clone();
//Returns a copy of objects data in store.
//This method clones only the references stored in
//each node of the list. The objects that the
//list nodes point to are not cloned.
public boolean isEmptyList();
//Method to determine whether the list is empty.
//Postcondition: Returns true if the list is empty;
// false otherwise.
public void initializeList();
//Method to initialize the list to an empty state.
//Postcondition: The list is initialized to an empty
// state.
public void print();
//Method to output the data contained in each node.
public int length();
//Method to return the number of nodes in the list.
//Postcondition: The number of nodes in the list is
// returned.
public T front();
//Method to return a reference of the object containing
//the data of the first node of the list.
//Precondition: The list must exist and must not be empty.
//Postcondition: The reference of the object that
// contains the info of the first node
// is returned.
public T back();
//Method to return a reference of object containing
//the data of the last node of the list.
//Precondition: The list must exist and must not be empty.
//Postcondition: The reference of the object that
// contains the info of the last node
// is returned.
public boolean search(T searchItem);
//Method to determine whether searchItem is in the list.
//Postcondition: Returns true if searchItem is found
// in the list; false otherwise.
public void insertFirst(T newItem);
//Method to insert newItem in the list.
//Postcondition: newItem is inserted at the
// beginning of the list.
public void insertLast(T newItem);
//Method to insert newItem at the end of the list.
//Postcondition: newItem is inserted at the end
// of the list.
public void deleteNode(T deleteItem);
//Method to delete deleteItem from the list.
//Postcondition: If found, the node containing
// deleteItem is deleted from the
// list.
public void splitAt(LinkedListClass<T> secondList, T item);
}This is the linked list class:
import java.util.NoSuchElementException;
public abstract class LinkedListClass<T> implements LinkedListADT<T>
protected class LinkedListNode<T> implements Cloneable
public T info;
public LinkedListNode<T> link;
//Default constructor
//Postcondition: info = null; link = null;
public LinkedListNode()
info = null;
link = null;
//Constructor with parameters
//This method sets info pointing to the object to
//which elem points to and link is set to point to
//the object to which ptr points to.
//Postcondition: info = elem; link = ptr;
public LinkedListNode(T elem, LinkedListNode<T> ptr)
info = elem;
link = ptr;
//Returns a copy of objects data in store.
//This method clones only the references stored in
//the node. The objects that the nodes point to
//are not cloned.
public Object clone()
LinkedListNode<T> copy = null;
try
copy = (LinkedListNode<T>) super.clone();
catch (CloneNotSupportedException e)
return null;
return copy;
//Method to return the info as a string.
//Postcondition: info as a String object is
// returned.
public String toString()
return info.toString();
} //end class LinkedListNode
public class LinkedListIterator<T>
protected LinkedListNode<T> current; //variable to
//point to the
//current node in
//list
protected LinkedListNode<T> previous; //variable to
//point to the
//node before the
//current node
//Default constructor
//Sets current to point to the first node in the
//list and sets previous to null.
//Postcondition: current = first; previous = null;
public LinkedListIterator()
current = (LinkedListNode<T>) first;
previous = null;
//Method to reset the iterator to the first node
//in the list.
//Postcondition: current = first; previous = null;
public void reset()
current = (LinkedListNode<T>) first;
previous = null;
//Method to return a reference of the info of the
//current node in the list and to advance iterator
//to the next node.
//Postcondition: previous = current;
// current = current.link;
// A refrence of the current node
// is returned.
public T next()
if (!hasNext())
throw new NoSuchElementException();
LinkedListNode<T> temp = current;
previous = current;
current = current.link;
return temp.info;
//Method to determine whether there is a next
//element in the list.
//Postcondition: Returns true if there is a next
// node in the list; otherwise
// returns false.
public boolean hasNext()
return (current != null);
//Method to remove the node currently pointed to
//by the iterator.
//Postcondition: If iterator is not null, then the
// node that the iterator points to
// is removed. Otherwise the method
// throws NoSuchElementException.
public void remove()
if (current == null)
throw new NoSuchElementException();
if (current == first)
first = first.link;
current = (LinkedListNode<T>) first;
previous = null;
if (first == null)
last = null;
else
previous.link = current.link;
if (current == last)
last = first;
while (last.link != null)
last = last.link;
current = current.link;
count--;
//Method to return the info as a string.
//Postcondition: info as a String object is returned.
public String toString()
return current.info.toString();
} //end class LinkedListIterator
//Instance variables of the class LinkedListClass
protected LinkedListNode<T> first; //variable to store the
//address of the first
//node of the list
protected LinkedListNode<T> last; //variable to store the
//address of the last
//node of the list
protected int count; //variable to store the number of
//nodes in the list
//Default constructor
//Initializes the list to an empty state.
//Postcondition: first = null, last = null,
// count = 0
public LinkedListClass()
first = null;
last = null;
count = 0;
//Method to determine whether the list is empty.
//Postcondition: Returns true if the list is empty;
// false otherwise.
public boolean isEmptyList()
return (first == null);
//Method to initialize the list to an empty state.
//Postcondition: first = null, last = null,
// count = 0
public void initializeList()
first = null;
last = null;
count = 0;
//Method to output the data contained in each node.
public void print()
LinkedListNode<T> current; //variable to traverse
//the list
current = first; //set current so that it points to
//the first node
while (current != null) //while more data to print
System.out.print(current.info + " ");
current = current.link;
}//end print
//Method to return the number of nodes in the list.
//Postcondition: The value of count is returned.
public int length()
return count;
//Method to return a reference of the object containing
//the data of the first node of the list.
//Precondition: The list must exist and must not be empty.
//Postcondition: The reference of the object that
// contains the info of the first node
// is returned.
public T front()
return first.info;
//Method to return a reference of object containing
//the data of the last node of the list.
//Precondition: The list must exist and must not be empty.
//Postcondition: The reference of the object that
// contains the info of the last node
// is returned.
public T back()
return last.info;
//Returns a copy of objects data in store.
//This method clones only the references stored in
//each node of the list. The objects that the
//list nodes point to are not cloned.
public Object clone()
LinkedListClass<T> copy = null;
try
copy = (LinkedListClass<T>) super.clone();
catch (CloneNotSupportedException e)
return null;
//If the list is not empty clone each node of
//the list.
if (first != null)
//Clone the first node
copy.first = (LinkedListNode<T>) first.clone();
copy.last = copy.first;
LinkedListNode<T> current;
if (first != null)
current = first.link;
else
current = null;
//Clone the remaining nodes of the list
while (current != null)
copy.last.link =
(LinkedListNode<T>) current.clone();
copy.last = copy.last.link;
current = current.link;
return copy;
//Method to return an iterator of the list.
//Postcondition: An iterator is instantiated and
// returned.
public LinkedListIterator<T> iterator()
return new LinkedListIterator<T>();
//Method to determine whether searchItem is in
//the list.
//Postcondition: Returns true if searchItem is found
// in the list; false otherwise.
public abstract boolean search(T searchItem);
//Method to insert newItem in the list.
//Postcondition: first points to the new list
// and newItem is inserted at the
// beginning of the list. Also,
// last points to the last node and
// count is incremented by 1.
public abstract void insertFirst(T newItem);
//Method to insert newItem at the end of the list.
//Postcondition: first points to the new list and
// newItem is inserted at the end
// of the list. Also, last points to
// the last node and
// count is incremented by 1.
public abstract void insertLast(T newItem);
//Method to delete deleteItem from the list.
//Postcondition: If found, the node containing
// deleteItem is deleted from the
// list. Also, first points to the first
// node, last points to the last
// node of the updated list, and count
// is decremented by 1.
public abstract void deleteNode(T deleteItem);
public abstract void splitAt(LinkedListClass<T> secondList, T item);
}And this is the UnorderedLinked Class with the very last method the one being Im stuck on. The SplitAt Method.
public class UnorderedLinkedList<T> extends LinkedListClass<T>
//Default constructor
public UnorderedLinkedList()
super();
//Method to determine whether searchItem is in
//the list.
//Postcondition: Returns true if searchItem is found
// in the list; false otherwise.
public boolean search(T searchItem)
LinkedListNode<T> current; //variable to traverse
//the list
boolean found;
current = first; //set current to point to the first
//node in the list
found = false; //set found to false
while (current != null && !found) //search the list
if (current.info.equals(searchItem)) //item is found
found = true;
else
current = current.link; //make current point to
//the next node
return found;
//Method to insert newItem in the list.
//Postcondition: first points to the new list
// and newItem is inserted at the
// beginning of the list. Also,
// last points to the last node and
// count is incremented by 1.
public void insertFirst(T newItem)
LinkedListNode<T> newNode; //variable to create the
//new node
newNode =
new LinkedListNode<T>(newItem, first); //create and
//insert newNode before
//first
first = newNode; //make first point to the
//actual first node
if (last == null) //if the list was empty, newNode is
//also the last node in the list
last = newNode;
count++; //increment count
//Method to insert newItem at the end of the list.
//Postcondition: first points to the new list and
// newItem is inserted at the end
// of the list. Also, last points to
// the last node and
// count is incremented by 1.
public void insertLast(T newItem)
LinkedListNode newNode; //variable to create the
//new node
newNode =
new LinkedListNode(newItem, null); //create newNode
if (first == null) //if the list is empty, newNode is
//both the first and last node
first = newNode;
last = newNode;
else //if the list is not empty, insert
//newNode after last
last.link = newNode; //insert newNode after last
last = newNode; //set last to point to the
//actual last node
count++;
}//end insertLast
//Method to delete deleteItem from the list.
//Postcondition: If found, the node containing
// deleteItem is deleted from the
// list. Also, first points to the first
// node, last points to the last
// node of the updated list, and count
// is decremented by 1.
public void deleteNode(T deleteItem)
LinkedListNode<T> current; //variable to traverse
//the list
LinkedListNode<T> trailCurrent; //variable just
//before current
boolean found;
if ( first == null) //Case 1; the list is empty
System.err.println("Cannot delete from an empty "
+ "list.");
else
if (first.info.equals(deleteItem)) //Case 2
first = first.link;
if (first == null) //the list had only one node
last = null;
count--;
else //search the list for the given info
found = false;
trailCurrent = first; //set trailCurrent to
//point to the first node
current = first.link; //set current to point to
//the second node
while (current != null && !found)
if (current.info.equals(deleteItem))
found = true;
else
trailCurrent = current;
current = current.link;
}//end while
if (found) //Case 3; if found, delete the node
count--;
trailCurrent.link = current.link;
if (last == current) //node to be deleted
//was the last node
last = trailCurrent; //update the value
//of last
else
System.out.println("Item to be deleted is "
+ "not in the list.");
}//end else
}//end else
}//end deleteNode
public void splitAt(LinkedListClass<T> secondList, T item)
LinkedListNode<T> current;
LinkedListNode<T> trailCurrent;
int i;
boolean found;
if (first==null)
System.out.println("Empty.");
first=null;
last=null;
count--;
count=0;
else
current=first;
found=false;
i=1;
while(current !=null &&!found)
if(current.info.equals(item))
found= true;
else
trailCurrent=first;
current=first;
i++;
if(found)
if(first==current)
first.link=first;
last.link=last;
count--;
count=0;
else
first.link=current;
last.link=last;
last=null;
count = count- i+1;
count = i-1;
} else {
System.out.println("Item to be split at is "
+ "not in the list.");
first=null;
last=null;
count=0;
Any help or just advice would be fine. Im not the best at Java, better at VB. Am completely stumped! Thanks so much! -
Links Pallet Content Compared To Excell List (or any list)
My epiphany last Friday prompts me to ask:
How do I get the "file names" that are in the links pallet list to compare to another list, such as in Microsoft Excell?
I make a multi-page publication in Indesign twice each month. Currently, each page is made up of various compositions of advertisements for print. The ads are snared by the "select all" , copied onto the "clipboard" and then pasted into the multipage Indesign document. I want to change all that. I want build the finished product differently by placing PDFs of the ads instead of Indesign compositions. It dawned on me if it is done that way, then all my single ads will be in the links pallet as single names. This has the potential to be compared to another list. If this can be done some way it will completely offer a whole new way to check our ads that are in the Indesign document to the list of ads that are sold by our sales representatives. Our error of highest frequency is dropping of ads and second highest error is ads placed more than once.
To verify what ads should be in the publication, the final pages that are PDF'd are checked against "the run sheet" (a comprehensive list of all the ads sold, and by whom, what size and any placement information.
The manager of the publication often wants to rearrange the ads in the publication at the last minute. Our errors occur during this process, because even though the PDFs are manually checked against the "run sheet", errors occur because the check off process currently used is not repeated after rearranging. (usually because of time constraints and/or the operator error during the check off process.
I see the potential for an automated process to check the ads in the publication at will, anytime and at any frequency to the "run sheet".
Any ideas? I'd like to capture the text in the links pallet somehow...The script is already written. You will just need to place in the proper place.
If it does not do exactly what you need, I may be able to help.
There are easy to follow instructions on how to install here:
http://indesignsecrets.com/how-to-install-scripts-in-indesign.php -
Comparable linked list sorting
i have been trying to find a way to sort a link listed. After some reading i found out that it is probably best to use collections.sort(list). I think i understand how to implement it , i need to declare a compareto and equals method. However, most of the reading i have done shows how to create a collection from a linked list and add items to the collection and sort them, however it doesn show how to copy this sorted collection back inot a linked list. I need to remove items and add items to the sorted linked list. Is it possible to create a linked list, sort it using the collection sort and return the sorted linked list? I have looked in the api's but got confused!!
You don't need to copy anything.
List list = new LinkedList(); // or ArrayList
// list.add stuff
Collections.sort(list); Assuming whatever you added to the list implements Comarable, the list is now sorted. -
Comparing two List values using Oracle Business Rules
Hi all,
i just need to know how to use the Oracle Business Rules to Compare 2 list types
say for example list1( 10,20,30,40) and List2(10,50,60). when i compare both the list using the business rules
the rule should return true if there is atleast one match..here 10.
any help is appreciated
Thanks,
karthikHi folks,
Please show the way....
Regards,
PavanKumar.M -
Can you create two separate tile views for a Promoted Links List
I have lots of pages on my site where i want the effect of the promoted links list tile view. However, i don't want the same links to show up on every spot i use it. Is there not a way to create separate tile views so you can create filtering conditions?
Right now i am stuck having 5 separate lists with 5 items in each because of this limitation. Am i missing something?
I look forward to your responses.
~ZachThere is an easy way to do this.
Add columns to the Promoted Links list.
Add a column named Page.
Type in name of the page on which you would like this link to appear.
Add a column named Row.
Create a view filtered by page name and Row. Example: Show only when Page = HomePage AND Row = 1
Create another view filtered by page name and another Row. Example: Show only when Page = HomePage AND Row = 2.
Go the page you would like the links to appear. Edit the Page.
Add Promoted Links app part (still not used to the app thing) and select your view for Row 1
Add another Promoted Links app part and select the view for Row 2.
Lather, Rinse and Repeat.
Tamara Bredemus SharePoint Minion...working up to Maven -
Changing data in a linked list object.
hi,
i'm still pretty new to java, so bear with me if i am making stupid mistakes, heh.
i'm having trouble with changing data in an object stored in a singly-linked list. i've created a class that will store polynomials in sorted order (descending) in a singly-linked list. each linked list is one polynomial, and each node references to a polynomial object that stores two ints: the coefficient and the exponent of that term.
i'm having trouble when it comes to 'collecting like terms,' though. here's a rough skeleton of my code:
public class Polynomial
private LinkedList polynoList;
private LinkedListItr Itr;
private int coeff;
private int exponent;
public Polynomial()
zeroPolynomial();
} // this constructor sets up an empty linked list
public Polynomial( int c, int e )
coeff = c;
exponent = e;
} // this creates a Polynomial object storing the two ints
public void zeroPolynomial()
polynoList = new LinkedList();
theItr = polynoList.zeroth();
} // this method creates the empty linked list and sets the
//iterator on the zeroth node.
//various other methods are here, not relevant to my post
//this next method is the one i am having trouble with.
//it takes two ints as parameters, the coefficient
//and the exponent.
public void insertTerm( int c, int e )
//...i have a few if/then statements here
//so that the terms can be inserted in descending order.
LinkedListItr tester = polynoList.first();
//the 'tester' iterator is set on the first node
//this following if statement retrieves the exponent
//in the current node by casting the information
//retrieved from the LinkedList retrieve() method
//into Polynomial, then compares it to the current
//exponent. if they are equal, i want to add the
//coefficients.
if( e == ((Polynomial)tester.retrieve()).getExp() )
this.coeff = ((Polynomial)tester.retrieve()).getCoeff() + c;
//a main method goes here wherein the user can insert
//terms, print the polynomial, etc.
}//end Polynomial class
can anyone help me out? the code i'm using compiles correctly, but it does not change the value of the current coeff variable as i'd like to think it should. any input would be GREATLY appreciated, thanks!hey,
thanks for the reply...
i am sure that ((Polynomial)tester.retrieve()).getExp() will return an int equal to 'e.' i tried this:
System.out.println("e="+e);
System.out.println((Polynomial)tester.retrieve()).getExp());
if( e == ((Polynomial)tester.retrieve()).getExp() ){
this.coeff = ((Polynomial)tester.retrieve()).getCoeff() + c;
System.out.println( "this.coeff = " + this.coeff );
with that, the output showed that e and the getExp() output were the same. it also showed (as output) that this.coeff did change in value, but when i tried this:
System.out.println( ((Polynomial)tester.retrieve()).getCoeff() )
to check if the value changed within the object, it didn't. this.coeff changed, but the actual coeff variable in the object didn't.
any ideas? -
Recursively Finding a Node in a Linked List
I'm trying to find a node recursively in this linked list but keep coming up with an error message - can anyone tell me what is wrong?
public boolean find (Object obj)
DonorNode node = new DonorNode(obj);
DonorNode current = list;
if (don.equals(current))
return true;
else
return find(current.next);
}Please post within code tags (button above the message box).
Without more information it's hard to say.
What is list?
What is don?
If you don't mind me pointing out:
A method named find conventionally returns some object it is searching for or null if not found.
What you have (by that I mean a method returning boolean) is generally named contains (or some other obvious predicate name).
That being said, if I assume that DonorNodes contain some Object and have getter functions to access those; and that list is a DonorNode representing the head of the list, try something like:public boolean contains(Object o) {
return contains(o, list);
private boolean contains(Object o, DonorNode n) {
if (n.getObject() == o)
return true;
if (n.getNext() == null)
return false;
return contains(o, n.getNext());
}Although keep in mind that comparing two Objects using '==' will result in reference only comparison. If you need some other form of comparison you might consider using the equals method (make sure you then implement it in all potentially contained classes) or even narrowing the accepted argument to classes that implement the Comparable interface.
Hope this helps.
Maybe you are looking for
-
Hello All, What I am trying to do is use SCCM's own OSD Task Sequence / Windows PE to deploy an operating system that boots using VHD Native Boot. (C:\ = VHD File with Windows, D:\ Data drive with BCDBoot). MDT 2013 Can do it I've been told, but I a
-
How does SWING handle HTML in Tabs (labels, etc)
Hello, I've got a class ("UnderlinedTabbedPane") that extends JTabbedPane and (you guessed it!) underlines the current selection. It does this by just changing the title to <html><u>[title]</u></html>. All well and good. The trick is that when our cu
-
My daughter just received an ISight camera which has been backorderd for six weeks - unpacked it - and watched her computer screen go blue. Apparently the camera is shipped with some unmarked magnets (which are only mentioned in the fine print of the
-
IPhone to iTunes sync problem...
When I connect my iPhone to my iMac using a USB, I get this error message "iPhone cannot be used because it requires iTUnes version 10.5 or later." I downloaded the updated iTunes to my computer and updated iOS 5.0.1 on my iPhone. I restarted both an
-
Lync 2013 does not show normalized numbers in the client contact card.
Hi, We are migrating from OCS 2007 to Lync 2013. Everything runs now in side by side topology. I have problems with contacts numbers shown in the Lync client. I've moved "Company_Phone_Number_Normalization_Rules.txt" file from OCS server to Lync. All