資料結構 棧與佇列

2021-09-30 14:02:30 字數 3013 閱讀 5286

1.棧的定義

2.用棧實現鍊錶

public

class stacklinked

public

void

setdata(int data)

public node getnext()

public

void

setnext(node next)

private

int data;

private node next;

public

node(int data,node next)

}private node head;

private

int size = 0;

//入棧

public

void

push (int data) else

size++;

}//出棧

public

void

pop()

node temp = head;

head = head.getnext();

size--;

system.out.println(temp.getdata());

}//判斷棧是否為空

public boolean isempty()

return

false;

}public

static

void

main(string args)

}

輸出結果

694

3true

3.用棧實現陣列
public

class arraystack

public

void

push(int... data)

++top;

arr = data;}}

public

intpop()

return arr[top--];

}public

void

print()

}public

static

void

main(string args)

}

輸出結果

623

95pop: 6

pop: 2

pop: 3

pop: 9

pop: 5

4.佇列的定義**:

5.迴圈佇列

public

class loopqueue

//以乙個初始化元素來建立迴圈佇列

public

loopqueue(t element)

//以指定迴圈佇列中第乙個元素和指定長度的陣列來建立迴圈佇列

public

loopqueue(t element, int initsize)

//獲取迴圈佇列的大小

public

intsize()

return rear > front ? rear - front : capacity - (front - rear);

}//插入佇列

public

void

add(t element)

elementdata[rear++] = element;

//如果rear已經到頭,那就轉頭

rear = rear == capacity ? 0 : rear;

}//移除佇列

public t remove()

//保留佇列的rear端的元素的值

t oldvalue = (t) elementdata[front];

//釋放佇列的front端的元素

elementdata[front++] = null;

//如果front已經到頭,那就轉頭

front = front == capacity ? 0 : front;

return oldvalue;

}//返回佇列頂元素,但不刪除佇列頂元素

public t element()

return (t) elementdata[front];

}//判斷迴圈佇列是否為空佇列

public boolean isempty()

//清空迴圈佇列

public

void

clear()

public string tostring() else

int len = sb.length();

}//如果front >= rear,有效元素為front->capacity之間、0->rear之間的

else

for (int i = 0; i < rear; i++)

int len = sb.length();}}

}public

static

void

main(string args)

}

輸出結果

[aaaa, bbbb, cccc]

刪除乙個元素後的佇列:[bbbb, cccc]

[bbbb, cccc, dddd]

佇列滿時的長度:3

本人才疏學淺,若有錯,請指出

謝謝!

資料結構 棧與佇列

題目 1.編寫函式,採用鏈式儲存實現棧的初始化 入棧 出棧操作 2.編寫函式,採用順序儲存實現棧的初始化 入棧 出棧操作 3.編寫函式,採用鏈式儲存實現佇列的初始化 入隊 出隊操作 4.編寫函式,採用順序儲存實現佇列的初始化 入隊 出隊操作 5.編寫乙個主函式,在主函式中設計乙個簡單的選單,分別除錯...

資料結構 棧與佇列

棧的原則是後進先出,即插入與刪除元素均在棧頂進行。獲取棧頂元素 s.top 佇列的原則是先進先出,即插入資料在隊尾進行,刪除資料在隊頭進行。獲取隊頭元素 q.front 思路 用兩個棧,乙個棧用來進隊,乙個棧用來出隊,當資料進入佇列的時候,我們將其壓入乙個棧,當資料出隊的時候,我們將儲存在棧內的資料...

資料結構 棧與佇列

1.順序棧 基本操作 typedef int elemtype 定義 順序棧 typedef struct sqstack 判空 bool stackempty sqstack s 進棧 bool push sqstack s elemtype x 出棧操作 bool pop sqstack s e...