国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮)

這篇具有很好參考價(jià)值的文章主要介紹了第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)


選擇填空題

1、前序、中序、后序遍歷

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮),JavaSE拓展練習(xí),數(shù)據(jù)結(jié)構(gòu),鏈表,前中后序遍歷,線性結(jié)構(gòu),單向鏈表及其反轉(zhuǎn),字符串壓縮

分析:

完全二叉樹(shù): 葉結(jié)點(diǎn)只能出現(xiàn)在最底層的兩層,且最底層葉結(jié)點(diǎn)均處于次底層葉結(jié)點(diǎn)的左側(cè)

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮),JavaSE拓展練習(xí),數(shù)據(jù)結(jié)構(gòu),鏈表,前中后序遍歷,線性結(jié)構(gòu),單向鏈表及其反轉(zhuǎn),字符串壓縮

1:
前序遍歷:中左右  ABDECF

中序遍歷:左中右  DBEAFC

后序遍歷:左右中  DEBFCA
2:n-i+1

2、線性結(jié)構(gòu)

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮),JavaSE拓展練習(xí),數(shù)據(jù)結(jié)構(gòu),鏈表,前中后序遍歷,線性結(jié)構(gòu),單向鏈表及其反轉(zhuǎn),字符串壓縮

C

3、其它

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮),JavaSE拓展練習(xí),數(shù)據(jù)結(jié)構(gòu),鏈表,前中后序遍歷,線性結(jié)構(gòu),單向鏈表及其反轉(zhuǎn),字符串壓縮

1、先根次序遍歷,就是前序遍歷:
ABDHIECFG
2、隊(duì)列先進(jìn)先出
3C
4、C
524次方是16個(gè)

編程題

4、單向鏈表構(gòu)建

(1)定義一個(gè)單向鏈表SingleLinked類(lèi)

  • 包含私有的靜態(tài)內(nèi)部類(lèi)Node

    • 包含Object類(lèi)型的data屬性和Node類(lèi)型的next屬性
    • 包含有參構(gòu)造Node(Object data, Node next)
  • 包含私有的單鏈表的Node類(lèi)型的頭結(jié)點(diǎn)first

  • 包含public void add(Object element)方法,可以添加元素到當(dāng)前單鏈表中

  • 包含私有的非靜態(tài)內(nèi)部類(lèi)Itr,Itr類(lèi)實(shí)現(xiàn)java.util.Iterator接口

    • 包含Node類(lèi)型的實(shí)例變量node,初始化為單鏈表的first
    • 重寫(xiě)boolean hasNext()方法,判斷node結(jié)點(diǎn)是否為空
    • 重寫(xiě)Object next()方法,獲取node對(duì)象的data值,并讓node結(jié)點(diǎn)指向下一個(gè)結(jié)點(diǎn)
  • 單向鏈表SingleLinked類(lèi)實(shí)現(xiàn)java.lang.Iterable接口,

    • 重寫(xiě)Iterator iterator()方法,返回非靜態(tài)內(nèi)部類(lèi)Itr的對(duì)象

(2)測(cè)試類(lèi)中創(chuàng)建SingleLinked單鏈表的對(duì)象,并添加(張三、李四、王五、趙六)幾個(gè)元素到單鏈表中,并用foreach循環(huán)變量輸出。

public class SingleLinked implements Iterable{
    private Node first;//單向鏈表的頭

    private static class Node{
        Object data;
        Node next;

        Node(Object data, Node node) {
            this.data = data;
            this.next = node;
        }
    }

    public void add(Object element){
        Node newNode = new Node(element, null);
        if(first == null){
            first = newNode;
            return;
        }

        Node node = first;
        while(node.next !=null){
            node = node.next;
        }
        node.next = newNode;
    }

    @Override
    public Iterator iterator() {
        return new Itr();
    }

    private class Itr implements Iterator{
        Node node = first;
        @Override
        public boolean hasNext() {
            return node != null;
        }

        @Override
        public Object next() {
            Object element = node.data;
            node = node.next;
            return element;
        }
    }

	/* 
	暴露靜態(tài)內(nèi)部類(lèi)
    public static class Knot{
        public Object data;
        public Knot next;
    }
    */

}
public class Exercise4 {
    public static void main(String[] args) {
        //違反了高內(nèi)聚低耦合的原則
/*        SingleLinked.Knot k1 = new SingleLinked.Knot();
        k1.data = "張三";

        SingleLinked.Knot k2 = new SingleLinked.Knot();
        k2.data = "李四";
        k1.next = k2;*/

        //高內(nèi)聚低耦合
        SingleLinked link = new SingleLinked();
        link.add("張三");
        link.add("李四");
        link.add("王五");
        link.add("趙六");

        for (Object o : link) {
            System.out.println(o);
        }
    }
}

5、單向鏈表及其反轉(zhuǎn)

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮),JavaSE拓展練習(xí),數(shù)據(jù)結(jié)構(gòu),鏈表,前中后序遍歷,線性結(jié)構(gòu),單向鏈表及其反轉(zhuǎn),字符串壓縮

單鏈表的實(shí)現(xiàn)

public class OneWayLinkedList<E>{
	private Node<E> head;
	private int total;
	
	private static class Node<E>{
		E data;
		Node<E> next;
		Node(E data, Node<E> next) {
			this.data = data;
			this.next = next;
		}
	}

	public void add(E e) {
		Node<E> newNode = new Node<>(e,null);
		if(head==null){
			head = newNode;
		}else{
			Node<E> node = head;
			while(node.next!=null){
				node = node.next;
			}
			node.next = newNode;
		}
		total++;
	}

	public void delete(E e) {
		Node<E> node = head;
		Node<E> find = null;
		Node<E> last = null;
		
		if(e==null){
			while(node!=null){
				if(node.data==null){
					find = node;
					break;
				}
				last = node;
				node = node.next;
			}
		}else{
			while(node!=null){
				if(e.equals(node.data)){
					find = node;
					break;
				}
				last = node;
				node = node.next;
			}
		}
		
		if(find != null){
			if(last==null){
				head = find.next;
			}else{
				last.next = find.next;
			}
			total--;
		}
	}
	
	public void update(E old, E value) {
		Node<E> node = head;
		Node<E> find = null;
		
		if(old==null){
			while(node!=null){
				if(node.data==null){
					find = node;
					break;
				}
				node = node.next;
			}
		}else{
			while(node!=null){
				if(old.equals(node.data)){
					find = node;
					break;
				}
				node = node.next;
			}
		}
		
		if(find != null){
			find.data = value;
		}
	}

	public boolean contains(E e) {
		return indexOf(e) != -1;
	}

	public int indexOf(E e) {
		int index = -1;
		if(e==null){
			int i=0;
			for(Node<E> node = head; node!=null; node=node.next ){
				if(node.data==e){
					index=i;
					break;
				}
				i++;
			}
		}else{
			int i=0;
			for(Node<E> node = head; node!=null; node=node.next ){
				if(e.equals(node.data)){
					index=i;
					break;
				}
				i++;
			}
		}
		return index;
	}

	public Object[] getAll() {
		Object[] all = new Object[total];
		Node<E> node = head;
		for (int i = 0; i < all.length; i++,node = node.next) {
			all[i] = node.data;
		}
		return all;
	}

	public int size() {
		return total;
	}

	@SuppressWarnings("unchecked")
	public void reverse() {
		if(head!=null) {
			Node<E>[] all = new Node[total];
			Node<E> node = head;
			for (int i = 0; i < all.length; i++) {
				all[i] = node;
				node = node.next;
			}
			
			head = all[all.length-1];
			node = head;
			for (int i = all.length-2; i >= 0; i--) {
				node.next = all[i];
				node = node.next;
			}
		}
	}
}
public class Exercise5 {
	public static void main(String[] args) {
		OneWayLinkedList<Integer> list = new OneWayLinkedList<>();
		for (int i = 1; i <= 5; i++) {
			list.add(i);
		}
		
		Object[] all = list.getAll();
		System.out.println(Arrays.toString(all));
		
		list.reverse();
		
		all = list.getAll();
		System.out.println(Arrays.toString(all));
	}
}

6、字符串壓縮

第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮),JavaSE拓展練習(xí),數(shù)據(jù)結(jié)構(gòu),鏈表,前中后序遍歷,線性結(jié)構(gòu),單向鏈表及其反轉(zhuǎn),字符串壓縮

實(shí)現(xiàn)簡(jiǎn)易字符串壓縮算法,其中連續(xù)出現(xiàn)2次以上(含2次)的字母轉(zhuǎn)換為字母和出現(xiàn)的次數(shù)。
例如:AAAABCCDEEEEE,壓縮之后為A4BC2DE5

代碼實(shí)現(xiàn):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-816616.html

public class Exercise6 {
	public static void main(String[] args) {
//		String str = "AAAABCCDEEEEE";
		String str = "AAAABCCDEEEEEF";
		
		LinkedList<String> list = new LinkedList<>();
		int count = 0;
		for (int i = 0; i < str.length(); i++) {
			if(list.size()==0) {
				list.addLast(str.charAt(i)+"");
				count++;
			}else {
				if(list.getLast().equals(str.charAt(i)+"")) {
					count++;
				}else {
					if(count>1) {
						list.addLast(count+"");
					}
					list.addLast(str.charAt(i)+"");
					count=1;
				}
			}
		}
		
		if(count>1) {
			list.addLast(count+"");
		}
		
		while(list.size()!=0) {
			System.out.print(list.pollFirst());
		}
	}
}

到了這里,關(guān)于第14章_集合與數(shù)據(jù)結(jié)構(gòu)拓展練習(xí)(前序、中序、后序遍歷,線性結(jié)構(gòu),單向鏈表構(gòu)建,單向鏈表及其反轉(zhuǎn),字符串壓縮)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包