【DataStructure】Some useful methods about linkedList(三)
来源:互联网 发布:黑心食品知乎 编辑:程序博客网 时间:2024/06/15 00:17
Method 4: Gets the value of element number i
For example, if list is {22, 33, 44, 55, 66, 77, 88, 99}, then get(list, 2) will return 44.
Solution 1:static int get(Node list, int i) {if (i < 0) {throw new IllegalArgumentException();}for (int j = 0; j < i; j++) {if (list == null) {throw new IllegalStateException();}list = list.next;}return list.data;}Solution 2:static int get(Node list, int i){Node p = list;int j = 0;while (j < i && p != null) {++j;p = p.next;}if(p == null){throw new java.util.NoSuchElementException();}return p.data;}
The output is as follows:
Method 5:inserts x as element number i;
For example, if list is {22, 33, 44, 55, 66, 77, 88, 99}, then put(list, 3, 50) will change List to {22, 33, 44, 50, 55, 66, 44, 88, 99}.
Hint: if i= 0, replace the value of the first node With x, and insert a new node immediately after it that contains the previous fist value.
Solution 1:static void put(Node list, int i, int x) {if (list == null) {throw new java.util.NoSuchElementException("List is Empty");} else if (i ==0) {list.next = new Node(list.data,list);list.data = x;} else {Node p = list;int j = 1;while (j < i && p != null) {++j;p = p.next;}if (p == null){String error = String.format("the list has only %d elements", j-1);;throw new java.util.NoSuchElementException(error);}p.next = new Node(x, p.next);}}
The output is as follows:
Method 6:Swap the i element with the j element
For example, if list is {22, 33, 44, 55, 66, 77, 88, 99}, then swap(list, 2, 5) will change List to {22, 33, 77, 55, 66, 44, 88, 99}.
static void swap(Node list, int i, int j) {if (i < 0 || j < 0) {throw new IllegalArgumentException();} else if (i == j) {return;}Node p = list, q = list;for (int ii = 0; ii < i; ii++) {if (p == null) {throw new IllegalStateException();}p = p.next;}for (int jj = 0; jj < j; jj++) {if (q == null) {throw new IllegalStateException();}q = q.next;}int pdata = p.data, qdata = q.data;p.data = qdata;q.data = pdata;return;}
The output is as follows:
Method 7: Gets a new list that contains all the elements of list1 and list2 in ascending order. List1 and list2 are both in ascending order.
For example, if list1is {22, 33, 55, 88} and list2is {44, 66, 77, 99}, then merged(list1, list2)will return the new list {22, 33, 44, 55, 66, 77, 88, 99}.
Note that the three lists should be completely independent of each other. Changing one list should have no effect upon the others.
static Node merged(Node list1, Node list2) {Node list = new Node(0);Node p = list, p1 = list1, p2 = list2;while (p1 != null && p2 != null) {if (p1.data < p2.data) {p = p.next = new Node(p1.data);p1 = p1.next;} else {p = p.next = new Node(p2.data);p2 = p2.next;}}while (p1 != null) {p = p.next = new Node(p1.data);p1 = p1.next;}while (p2 != null) {p = p.next = new Node(p2.data);p2 = p2.next;}return list.next;}The output is as follows:
- 【DataStructure】Some useful methods about linkedList(三)
- 【DataStructure】Some useful methods about linkedList.
- 【DataStructure】Some useful methods about linkedList(二)
- 【DataStructure】Some useful methods for arrays
- Time complexity analysis about some datastructure
- useful datastructure:
- Some useful tips about sox rec
- some useful stuff about TCP/IP
- Useful methods
- some simple facts about XML (三)
- some useful links
- Some useful expressions
- some useful websit
- Some useful TextBox Validations
- some useful URL
- Some useful linux commands
- Some Useful -XX Options
- some useful code
- AM335X PWMSS 驱动指导
- Javabean中属性和字段的区别
- cf445A DZY Loves Chessboard
- 苦逼程序猿
- 网页CSS常用英文命名说明
- 【DataStructure】Some useful methods about linkedList(三)
- 常用的开源网站
- codeigniter 操作mysql的PHP代码--更新
- VxWorks5.4下bsp中若干问题及解决办法
- cf445B DZY Loves Chemistry
- 程序员生存定律--如何尽快变的稍微专业一点
- android账号与同步之账号管理
- tomcat学习
- Lucas 定理