真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)結(jié)構(gòu)java源代碼,Java代碼結(jié)構(gòu)

求程序代碼(java版的數(shù)據(jù)結(jié)構(gòu))

3個class,運行UI.java。

創(chuàng)新互聯(lián)服務(wù)項目包括貴池網(wǎng)站建設(shè)、貴池網(wǎng)站制作、貴池網(wǎng)頁制作以及貴池網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,貴池網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到貴池省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

******

public class CircuitException extends Exception {public CircuitException(){}}

*****

import java.util.LinkedList;

public class GPS {

public static final int MAX = 65535;

public GPS(int maxSize){

graph = new Graph(maxSize);

}

public GPS(){

graph = new Graph();

}

public Graph graph;

public static void main(String args[]){

GPS gps = new GPS();

try {

gps.graph.addEdge("a", "b", 1);

gps.graph.addEdge("a", "c", 1);

gps.graph.addEdge("b","d" , 1);

gps.graph.addEdge("c","d" , 1);

gps.graph.addEdge("d","e" , 1);

gps.graph.addEdge("d","f" , 1);

gps.graph.addEdge("e","t" , 2);

gps.graph.addEdge("f","t" , 1);

LinkedList list = gps.graph.getPath("a", "d");

for(int i = 0 ; i list.size() ; i++){

System.out.print(list.get(i));

}System.out.println();

} catch (CircuitException e) {

System.out.println("出現(xiàn)了自環(huán)!");

}

gps.graph.showGraph();

System.out.println(gps.graph.gap);

}

public class Graph{

public int Zuidazhi = 50;

public int changdu = 0;

public Jiao[] vertex;

public double gap;

public Graph(){

vertex = new Jiao[Zuidazhi];

}

public Graph(int maxSize){

this.Zuidazhi = maxSize;

vertex = new Jiao[maxSize];

}

public void addVertex(String name){

vertex[changdu++] = new Jiao(name);

}

public void addEdge(String v1, String v2,double edge) throws CircuitException{

//先找到v1;

if(v1.equals(v2))

throw new CircuitException();

Jiao from = null;

Jiao to = null;

for(int i = 0 ; i changdu ; i++){

if(vertex[i].name.equals(v1)){

from = vertex[i];

}else if(vertex[i].name.equals(v2)){

to = vertex[i];

}

}

if(from == null){

this.addVertex(v1);

from = this.vertex[changdu-1];

}

if(to == null){

this.addVertex(v2);

to = this.vertex[changdu-1];

}//已經(jīng)找到v1和v2;

//沒有檢測是否v1 v2邊已經(jīng)存在!

//加入邊。

Jiao v1adj = new Jiao(v2);

v1adj.edge = edge;

Jiao v2adj = new Jiao(v1);

v2adj.edge = edge;

//添加聯(lián)系

//檢查聯(lián)系是否已經(jīng)存在

Jiao temp = from;

while(temp.next!=null){

Jiao temppar = temp;

temp = temp.next;

if(temp.name.equals(v1adj.name)){

temppar.next = temp.next;

}

}

v1adj.next = from.next;

from.next = v1adj;

//v2adj.next = to.next;

//to.next = v2adj;

}

//假設(shè)要找的必然存在,不用想是否不在

public LinkedList getPath(String v1 ,String v2){

int count = 0;

//System.out.println(count++);

boolean found[] = new boolean[changdu];

double distance[] = new double[changdu];

int to = 0;

Jiao from = null;

for(int i = 0 ; i changdu ; i++){

found[i] = false;

distance[i] = MAX;

}

for(int i = 0 ; i changdu ; i++){

if(vertex[i].name.equals(v1)){//找到始發(fā)地

from = vertex[i];

distance[i] = 0;

found[i] = true;

//System.out.println(count++);

}

if(vertex[i].name.equals(v2)){//找到目的地

to = i;

//System.out.println(count++);

}

}

//必須先準(zhǔn)備好路徑!

Jiao forCount = from;

int degree = 0;

while(forCount!=null){

degree++;

forCount=forCount.next;

}

LinkedList[] list = new LinkedList[degree];

int [] mark = new int[degree];

for(int i = 0 ; i degree ; i++){

list[i]=new LinkedList();

mark[i]=MAX;

}

int test=0;

int count2 = 0;

int count3 = 0;

//System.out.println(count+++"xx");

while(!found[to]test++100){

//System.out.println(count+++"FIRST");

//開始時from到所有都是最大值。

//找到標(biāo)記了的節(jié)點

//找標(biāo)記了的節(jié)點鄰接的未標(biāo)記的節(jié)點。

//得到最短的邊,并標(biāo)記。

//更新現(xiàn)有路徑

double min = MAX;

int address = -1;

int father = -1;

for(int i = 0 ; i changdu ; i++){//對于已經(jīng)找到的頂點尋找最小的往后的距離。

if(found[i]){//找到了的。

Jiao temp = vertex[i];

while(temp!=null){//vertex的鄰接頂點~~

//先看temp的號碼~

int tempNumber = -1;

for(int j = 0 ; j changdu ; j++){

if(vertex[j].name.equals(temp.name)){

tempNumber = j;

break;

}

}

if(!found[tempNumber]){//如果是還沒有找到的~

double dist = distance[i]+temp.edge;

if(dist min){

min = dist;

father = i;

//System.out.println(" "+min);

address = tempNumber;

}

}

temp = temp.next;

}

}

}found[address] = true;

distance[address] = min;

//添加到已有路徑中去!

//知道father

for(int i = 0 ; i degree ; i++){

if(list[i].isEmpty()||list[i].getLast().equals(vertex[father].name)){

list[i].addLast(vertex[address].name);

break;

}

}

}

for(int i = 0 ; i degree ; i++){

if(list[i].isEmpty())

continue;

else{

if(list[i].getLast().equals(v2)){

gap=0;

//先求出gap

Jiao pre = from;

Jiao nex = null;

for(int j = 0 ; j list[i].size() ; j++){

for(int k = 0 ; k changdu ; k++){

if(vertex[k].name.equals(list[i].get(j))){

nex = vertex[k];break;

}

}

while(pre.next!=null){//找到下一個的長度

pre = pre.next;

//System.out.println(nex.name +"nex.name");

if(pre.name.equals(nex.name)){

gap+=pre.edge;

//System.out.println(" gap2 "+gap);

}

}

pre = nex;

}

//System.out.println(gap+"gap");

return list[i];

}

}

}

return null;

}

public void showGraph(){

Jiao temp;

for(int i = 0 ; i changdu ; i++){

temp = vertex[i];

while(temp!=null){

System.out.print(temp.name+temp.edge+" ");

temp = temp.next;

}System.out.println();

}System.out.println("Show Over!");

}

}

public class Jiao{

public String name;

public Jiao next = null;

public double edge;

public Jiao(String name){

this.name = name;

}

}

}

******

import java.awt.EventQueue;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.LinkedList;

import javax.swing.JButton;

import javax.swing.DefaultListModel;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JSeparator;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class UI extends JFrame implements ActionListener{

private JTextField textField_5;

private JTextField textField_4;

private JList list_1;

private JList list;

private JTextField textField_1;

private JTextField textField_3;

private JTextField textField_2;

private JTextField textField;

private DefaultListModel model = new DefaultListModel();

private DefaultListModel model_1 = new DefaultListModel();

/**

* Launch the application

* @param args

*/

public static void main(String args[]) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

UI frame = new UI();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame

*/

public UI() {

super();

setTitle("GPS尋路");

getContentPane().setLayout(null);

setBounds(100, 100, 500, 375);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JScrollPane scrollPane = new JScrollPane();

scrollPane.setBounds(11, 36, 221, 193);

getContentPane().add(scrollPane);

list = new JList(model);

scrollPane.setViewportView(list);

final JScrollPane scrollPane_1 = new JScrollPane();

scrollPane_1.setBounds(253, 36, 218, 193);

getContentPane().add(scrollPane_1);

list_1 = new JList(model_1);

scrollPane_1.setViewportView(list_1);

final JLabel label = new JLabel();

label.setText("從");

label.setBounds(10, 249, 24, 18);

getContentPane().add(label);

final JLabel label_1 = new JLabel();

label_1.setText("到");

label_1.setBounds(11, 273, 24, 18);

getContentPane().add(label_1);

textField = new JTextField();

textField.setBounds(50, 247, 103, 22);

getContentPane().add(textField);

textField_2 = new JTextField();

textField_2.setBounds(50, 271, 103, 22);

getContentPane().add(textField_2);

final JLabel label_2 = new JLabel();

label_2.setText("距離");

label_2.setBounds(11, 297, 37, 18);

getContentPane().add(label_2);

textField_3 = new JTextField();

textField_3.setBounds(50, 295, 103, 22);

getContentPane().add(textField_3);

final JButton button = new JButton();

button.setText("添加");

button.setBounds(155, 250, 73, 28);

getContentPane().add(button);

final JButton button_1 = new JButton();

button_1.setText("刪除");

button_1.setBounds(155, 285, 73, 28);

getContentPane().add(button_1);

final JLabel label_3 = new JLabel();

label_3.setText("距離:");

label_3.setBounds(253, 297, 39, 18);

getContentPane().add(label_3);

textField_1 = new JTextField();

textField_1.setBounds(293, 295, 86, 22);

getContentPane().add(textField_1);

final JButton button_2 = new JButton();

button_2.setText("顯示路徑");

button_2.setBounds(385, 249, 86, 68);

getContentPane().add(button_2);

final JLabel label_4 = new JLabel();

label_4.setText("路徑表示");

label_4.setBounds(11, 10, 66, 18);

getContentPane().add(label_4);

final JLabel label_5 = new JLabel();

label_5.setText("最佳路徑");

label_5.setBounds(253, 12, 66, 18);

getContentPane().add(label_5);

//

button.addActionListener(this);

button_1.addActionListener(this);

button_2.addActionListener(this);

final JLabel label_6 = new JLabel();

label_6.setText("從");

label_6.setBounds(253, 249, 24, 18);

getContentPane().add(label_6);

textField_4 = new JTextField();

textField_4.setBounds(293, 247, 86, 22);

getContentPane().add(textField_4);

final JLabel label_7 = new JLabel();

label_7.setText("到");

label_7.setBounds(253, 273, 24, 18);

getContentPane().add(label_7);

textField_5 = new JTextField();

textField_5.setBounds(293, 271, 86, 22);

getContentPane().add(textField_5);

final JSeparator separator = new JSeparator();

separator.setOrientation(SwingConstants.VERTICAL);

separator.setBounds(239, 10, 8, 317);

getContentPane().add(separator);

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getActionCommand().equals("添加")){

try{String from = textField.getText();

String to = textField_2.getText();

if(from.equals(to)){

JOptionPane.showMessageDialog(null, "始點與終點不能相同");

return;

}

if(from.equals("")||to.equals("")){

JOptionPane.showMessageDialog(null, "添加不能為空");

return;

}for(int i = 0 ; i model.size() ; i ++){

if(model.get(i).toString().substring(0, model.get(i).toString().indexOf(":")).equals(

from+"-"+to))

model.remove(i);

}

double length = Double.parseDouble(textField_3.getText());

model.addElement(from+"-"+to+": "+length);

}catch(Exception e1){

JOptionPane.showMessageDialog(null, "距離為數(shù)字值");

}

}

if(e.getActionCommand().equals("刪除")){

for(int i = 0 ; i model.size() ; i++){

if(list.isSelectedIndex(i))

model.remove(i);

}

}

if(e.getActionCommand().equals("顯示路徑")){

try{

model_1.removeAllElements();

GPS gps = new GPS();

String full,from,to;

double length;

for(int i = 0 ; i model.size() ; i++){

full = model.get(i).toString();

from = full.substring(0,full.indexOf("-"));

to = full.substring(full.indexOf("-")+2,full.lastIndexOf(":"));

length = Double.parseDouble(full.substring(full.indexOf(":")+1, full.length()-1));

//System.out.println(from);

//System.out.println(to);

try {

gps.graph.addEdge(from, to, length);

System.out.println(from +" "+ to);

} catch (CircuitException e1) {

System.out.println("有環(huán)存在");

}

}LinkedList list = gps.graph.getPath(textField_4.getText(), textField_5.getText());

model_1.addElement(textField_4.getText());

for(int i = 0 ; i list.size() ; i++){

model_1.addElement(list.get(i));

}//計算路徑長度

textField_1.setText(""+gps.graph.gap);

}catch(Exception e1){

JOptionPane.showMessageDialog(null, "沒有找到有關(guān)節(jié)點");

}

}

}

}

java數(shù)據(jù)結(jié)構(gòu) gui編程。效果圖在下面。有大神會么?跪求源代碼!也不需要完全跟圖一樣。能實現(xiàn)功

import?java.awt.*;

import?java.awt.event.*;

import?javax.swing.*;

import?javax.swing.event.*;

public?class?DSExample?{

public?static?void?main(String[]?args)?{

EventQueue.invokeLater(new?Runnable(){

@Override?public?void?run(){

final?JFrame?frame?=?new?JFrame("Java數(shù)據(jù)結(jié)構(gòu)");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final?Box?hbox?=?Box.createHorizontalBox();

final?JButton?stackButton?=?new?JButton("堆棧");

final?JButton?queueButton?=?new?JButton("隊列");

final?JButton?stringButton?=?new?JButton("串");

final?JButton?recurButton?=?new?JButton("遞歸");

final?JButton?treeButton?=?new?JButton("樹");

final?JButton?graphButton?=?new?JButton("圖");

final?JButton?opButton?=?new?JButton("數(shù)據(jù)操作");

final?JButton?expButton?=?new?JButton("表達式");

hbox.add(stackButton);

hbox.add(queueButton);

hbox.add(stringButton);

hbox.add(recurButton);

hbox.add(treeButton);

hbox.add(graphButton);

hbox.add(opButton);

hbox.add(expButton);

final?Box?vbox?=?Box.createVerticalBox();

vbox.add(new?JLabel("代碼區(qū)域"));

final?JTextArea?codeArea?=?new?JTextArea();

vbox.add(new?JScrollPane(codeArea));

final?JPanel?opPanel?=?new?JPanel(new?GridLayout(4,2));

final?JButton?pushButton?=?new?JButton("數(shù)據(jù)入隊");

final?JButton?popButton?=?new?JButton("數(shù)據(jù)出隊");

final?JButton?headButton?=?new?JButton("隊頭元素");

final?JButton?tailButton?=?new?JButton("隊尾元素");

final?JTextField?pushData?=?new?JTextField();

final?JTextField?popData?=?new?JTextField();

final?JTextField?headData?=?new?JTextField();

final?JTextField?tailData?=?new?JTextField();

opPanel.add(pushData);

opPanel.add(pushButton);

opPanel.add(popData);

opPanel.add(popButton);

opPanel.add(headData);

opPanel.add(headButton);

opPanel.add(tailData);

opPanel.add(tailButton);

opPanel.setBorder(BorderFactory.createTitledBorder("操作"));

frame.add(hbox,?BorderLayout.PAGE_START);

frame.add(opPanel,?BorderLayout.LINE_END);

frame.add(vbox,?BorderLayout.CENTER);

frame.pack();

frame.setVisible(true);

}

});

}

}

數(shù)據(jù)結(jié)構(gòu) java

應(yīng)該是char

public void outprint( ) { // 本方法調(diào)用后輸出的結(jié)果是什么?

Queue Q=new Queue();

String x=”e” , y=”c”;

Q. enqueue (“h”);

Q. enqueue (“r”);

Q. enqueue (y); //到此,Q中元素:'h'、'r'、'c'

x=(String)Q. dequeue (); //'h'出去,x='h',Q中元素:'r'、'c';

Q. enqueue (x); //x進去,Q中元素:'r'、'c'、'h

x=(String)Q. dequeue (); //'r'出去,x='r',Q中元素:'c'、'h'

Q. enqueue (“a”); //'a'進去,Q中元素:'c'、'h'、'a'

while(!Q.isEmpty()){

y =(String)Q. dequeue ();

System.out.print(y); } //所以,while循環(huán)應(yīng)打印出cha

System.out.println(x); //x='r',最終輸出char

}

關(guān)于數(shù)據(jù)結(jié)構(gòu)(java)的一個代碼

描述棧抽象數(shù)據(jù)類型的SStack接口的聲明

public interfaceSStackE //棧接口

{

boolean isEmpty(); //判斷是否空棧,若空棧返回true

boolean push(E element); //元素element入棧,若操作成功返回true

E pop(); //出棧,返回當(dāng)前棧頂元素,若??辗祷豱ull

E get(); //取棧頂元素值,未出棧,若??辗祷豱ull

}

順序棧類具體操作方法的聲明:

importdataStructure.linearList.SStack;

public classSeqStackE implements SStackE

//順序棧類

{

private Object value[]; //存儲棧的數(shù)據(jù)元素

private int top; //top為棧頂元素下標(biāo)

public SeqStack(int capacity) //構(gòu)造指定容量的空棧

{

this.value = newObject[Math.abs(capacity)];

this.top=-1;

}

public SeqStack() //構(gòu)造默認(rèn)容量的空棧

{

this(10);

}

public boolean isEmpty() //判斷是否空棧,若空棧返回true

{

return this.top==-1;

}

public boolean push(E element) //元素element入棧,若操作成功返回true

{

if (element==null)

return false; //空對象(null)不能入棧

if (this.top==value.length-1) //若棧滿,則擴充容量

{

Object[] temp = this.value;

this.value = newObject[temp.length*2];

for (int i=0; itemp.length;i++)

this.value[i] = temp[i];

}

this.top++;

this.value[this.top] = element;

return true;

}

public E pop() //出棧,返回當(dāng)前棧頂元素,若??辗祷豱ull

{

if (!isEmpty())

return (E)this.value[this.top--];

else

return null;

}

public E get() //取棧頂元素值,未出棧,棧頂元素未改變

{

if (!isEmpty())

return (E)this.value[this.top];

else

return null;

}

public String toString() //返回棧中各元素的字符串描述

{

String str="{";

if (this.top!=-1)

str +=this.value[this.top].toString();

for (int i=this.top-1; i=0; i--)

str += ","+this.value[i].toString();

return str+"} ";

}

實例引用public static void main(String args[])

{

SeqStackString stack = newSeqStackString(20);

System.out.print("Push: ");

char ch='a';

for(int i=0;i5;i++)

{

String str =(char)(ch+i)+"";

stack.push(str);

System.out.print(str+" ");

}

System.out.println("\n"+stack.toString());

System.out.print("Pop : ");

while(!stack.isEmpty()) //全部出棧

System.out.print(stack.pop().toString()+" ");

System.out.println();

}

java數(shù)據(jù)結(jié)構(gòu)

對于棧,我給你總結(jié)下:

棧(stack):限定僅在表尾進行插入或刪除操作的線。

表尾-棧頂(top),表頭-棧底(bootom)

特點:先進后出(filo),或后進先出(lifo)。

至于你的問題實現(xiàn)代碼如下(復(fù)制可以直接使用):

public static void main(String[] args) {

StackNumber a = new StackNumber();

a.add(1);

a.add(2);

a.add(3);

a.add(4);

StackNumber b = new StackNumber();

b.add(5);

b.add(6);

b.add(7);

b.add(8);

//上面是給棧a、b添加元素

//下面兩個for循環(huán)可以分別遍歷出棧a、b

for (int i = 0; i a.size(); i++) {

System.out.println(a.get(i));

}

System.out.println("--------------------");

for (int i = 0; i b.size(); i++) {

System.out.println(b.get(i));

}

System.out.println("--------------------");

//將 A 中的 4轉(zhuǎn)移到 B中去 然后把 3 POP出來

//第一步:先將A中的4拋出來(現(xiàn)在4是在棧頂,可以直接拋出,如果不在棧頂,則要另寫方法)

/*這句可以取到元素“4”在棧中的位置,然后移除

* Number log= a.search(4);

System.out.println("CCC"+log);

a.remove(a.search(3));*/

a.pop();

//將元素4加載到B棧

b.push(4);

//第二步:把 3 POP出來

a.pop();

for (int i = 0; i a.size(); i++) {

System.out.println(a.get(i));

}

System.out.println("--------------------");

for (int i = 0; i b.size(); i++) {

System.out.println(b.get(i));

}

System.out.println("--------------------");

}

算法 數(shù)據(jù)結(jié)構(gòu)編程(java語言)

private void sort(int[] list)

{

int[] sortlist=new int[21];

for(int i=1;i=20;i++)

sortlist[i]=-1;

for(int i=0;ilist.Length;i++)

{

sortlist[list[i]]=list[i];

}

for(int i=0;isortlist.Length;i++)

{

if(sortlist[i]!=-1)

{

輸出sortlist[i];

}

}

因為已知最大值,所以遍歷算法計算次數(shù)為常數(shù),所以算法復(fù)雜度為1


分享名稱:數(shù)據(jù)結(jié)構(gòu)java源代碼,Java代碼結(jié)構(gòu)
地址分享:http://weahome.cn/article/hcdeoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部