Document
Vincent's Blog
 
社交按钮
首页
笔记
归档
标签
关于
留言
友人帐

访客人数:人 总访问量:次
| Theme: Fog
载入天数...
载入时分秒...
06/08/2020
🎈总访问量:  |   🙍‍访问人数:
2020-06-25
2 min read

笔记-2020/06/24

https://VincentZ007.github.io/post/bi-ji-20200624/
https://VincentZ007.github.io/

热度🔥: loading...

单链表的各种函数

获取单链表长度

public int findLength(LinkList list) {
		int count=0;
		while(true){
			count++;
			if(list.next==null)return count;
			list=list.next;
		}
	}

或

	public int getLength(LinkList list) {
		int count=-1;
		while (list!=null) {
			list=list.next;
			count++;
		}
		return count;
	}

查找链表中第一个值为e的结点

public LinkList findEByValue(LinkList list,int e) {
		while(list!=null) {
			if(list.data==e) {
				return list;
			}
			list=list.next;
		}
		return null;
	}

查找链表中第k个结点的值

public LinkList findEByNum(LinkList list,int k) {
		if(getLength(list)<k)
			return null;
		int count=0;
		while (count<k) {
			list=list.next;
			count++;
		}
		return list;
	}

颠倒单链表并输出

public void printReverseLinkList(LinkList list) {
		LinkList head=list;
		LinkList p=list.next;
		LinkList q;
		list.next=null;
		while(p!=null) {
			q=p.next;
			p.next=head.next;
			head.next=p;
			p=q;
		}
		printLinkList(head);
	}

去掉单链表中重复的值,并返回一个删去重复值的单链表

public LinkList deleteSame(LinkList list) {
		list=list.next;
		LinkList haha=new LinkList();
		int j=0;
		int len=getLength(list);
		int lenxixi=0;
		int[] arr=new int[100];
		for (int i = 0; i < len; i++) {
			arr[list.data]++;
			list=list.next;
		}
		System.out.println();
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]!=0) {
				lenxixi++;
			}
		}
		int[] xixi=new int[lenxixi];
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]!=0) {
				xixi[j]=i;
				j++;
			}
		}
		haha = haha.TailBuildList(xixi);
		return haha;
	}
上一篇 笔记-2020/07/08
下一篇 笔记-2020/06/22
  • 单链表的各种函数
    *
    • 获取单链表长度
    • 或
    • 查找链表中第一个值为e的结点
    • 查找链表中第k个结点的值
    • 颠倒单链表并输出
    • 去掉单链表中重复的值,并返回一个删去重复值的单链表
Vincent's Blog  |
  • 首页
  • 笔记
  • 归档
  • 标签
  • 关于
  • 留言
  • 友链
2020-06-25
2 min read

笔记-2020/06/24

https://VincentZ007.github.io/post/bi-ji-20200624/
https://VincentZ007.github.io/

热度🔥: loading...

单链表的各种函数

获取单链表长度

public int findLength(LinkList list) {
		int count=0;
		while(true){
			count++;
			if(list.next==null)return count;
			list=list.next;
		}
	}

或

	public int getLength(LinkList list) {
		int count=-1;
		while (list!=null) {
			list=list.next;
			count++;
		}
		return count;
	}

查找链表中第一个值为e的结点

public LinkList findEByValue(LinkList list,int e) {
		while(list!=null) {
			if(list.data==e) {
				return list;
			}
			list=list.next;
		}
		return null;
	}

查找链表中第k个结点的值

public LinkList findEByNum(LinkList list,int k) {
		if(getLength(list)<k)
			return null;
		int count=0;
		while (count<k) {
			list=list.next;
			count++;
		}
		return list;
	}

颠倒单链表并输出

public void printReverseLinkList(LinkList list) {
		LinkList head=list;
		LinkList p=list.next;
		LinkList q;
		list.next=null;
		while(p!=null) {
			q=p.next;
			p.next=head.next;
			head.next=p;
			p=q;
		}
		printLinkList(head);
	}

去掉单链表中重复的值,并返回一个删去重复值的单链表

public LinkList deleteSame(LinkList list) {
		list=list.next;
		LinkList haha=new LinkList();
		int j=0;
		int len=getLength(list);
		int lenxixi=0;
		int[] arr=new int[100];
		for (int i = 0; i < len; i++) {
			arr[list.data]++;
			list=list.next;
		}
		System.out.println();
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]!=0) {
				lenxixi++;
			}
		}
		int[] xixi=new int[lenxixi];
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]!=0) {
				xixi[j]=i;
				j++;
			}
		}
		haha = haha.TailBuildList(xixi);
		return haha;
	}
上一篇 笔记-2020/07/08
下一篇 笔记-2020/06/22