日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构(二)

發布時間:2024/4/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

***********************特殊的線性表-------棧****************************

棧: 先進后出、后進先出


棧的插入運算 叫做入棧

棧的刪除運算 叫做出棧

演示代碼:

package com.chapter11;

//棧的接口
public interface IStack {

public void push(Object obj) throws Exception;

public Object pop() throws Exception;

public boolean isEmpty();
}

棧的實現類

package com.chapter11;

//使用順序存儲方式棧
public class StackImpl implements IStack{

private Object[] arr = new Object[5];

private int top = -1;
@Override
public void push(Object obj) throws Exception {

if(top>=arr.length-1){ //棧滿
throw new Exception("棧滿了");
}else{
top++;
arr[top] = obj;
System.out.println(obj + "入棧了");
}
}

@Override
public Object pop() throws Exception {
Object obj = null;

if(isEmpty()){//棧空
throw new Exception("棧空了");
}else{


obj = arr[top];

System.out.println(obj + "出棧了");

arr[top] = null;

top--;
}

return obj;
}

@Override
public boolean isEmpty() {
return top==-1;
}


public static void main(String[] args) throws Exception{
IStack stack = new StackImpl();

stack.push("aaa");
stack.push("bbb");
stack.push("ccc");
stack.push("ddd");
stack.push("eee");

stack.push("eee");

/*stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();

stack.pop();*/
}
}

?

***************************選擇排序*****************************

int[] intArr = {26,7,16,23,33,8};


第一輪: 選擇出最小的 和第一個數進行交換

比較結果
{7, 26,16,23,33,8}


第二輪比較結果


{7,8, 16,23,33,26}


第三輪比較結果


{7,8,16, 23,33,26}


第四輪比較結果


{7,8,16,23, 33,26}


第五輪比較結果

{7,8,16,23,26, 33}

?

演示代碼:

package com.chapter11;

/**
* 公司:藍橋軟件學院 作者:zhangzy 時間:2017年7月14日 下午2:17:08 功能:演示選擇排序
*/
public class TestChoiceSorted {

public static void main(String[] args) {

int[] intArr = { 26, 7, 16, 23, 33, 8};

int temp;
// 總共比較多少輪 = 元素個數 - 1

// 一共比較了多少次 = n*(n-1)/2
//時間復雜度 O(n方)
//空間復雜度O(1)
//每一輪比較了多少次 = 元素的個數 - 輪數 次
//第一輪 比較了5次
//第二輪 比較了4次
//第三輪 3次
//第四輪 2次
//第五輪 1次
for (int j = 0; j < intArr.length - 1; j++) {

// 先寫一輪
// 第一輪: 選擇出最小的 和第一個交換
// 如何找最小
// 打擂臺: 假設第一個數是最小的 然后和后面的數進行比較

int min = j;// 假設第一個數是最小的
for (int i = min + 1; i < intArr.length; i++) {

if (intArr[min] > intArr[i]) {
min = i;
}
}

if (min != j) {

// temp intArr[min] intArr[0]
temp = intArr[min];
intArr[min] = intArr[j];
intArr[j] = temp;
}
}

System.out.println("選擇排序后");

for (int i : intArr) {
System.out.print(i + " ");
}

}
}

轉載于:https://www.cnblogs.com/MrTanJunCai/p/9906805.html

總結

以上是生活随笔為你收集整理的数据结构(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。