資料結構與演算法之第三章棧與佇列

2021-09-27 16:44:08 字數 3097 閱讀 6769

一、棧

package 棧與佇列;

public

inte***ce

istack

package 棧與佇列;

public

class

sqstack

implements

istack

@override

public

void

clear()

@override

public

intlength()

@override

public

void

push

(object o)

throws exception

else

}@override

public object pop()

else

}@override

public object peek()

else

}public

void

print()

}}

package 棧與佇列;

public

class

linkstack

implements

istack

@override

public

void

clear()

@override

public

intlength()

return length;

}@override

public

void

push

(object o)

throws exception

@override

public object pop()

else

}@override

public object peek()

else

}public

void

print()

system.out.

println()

;}}

二、 佇列

1、定義:刪除操作只能在一端(隊首)進行,而插入操作只能在另一端(隊尾)進行的線性表。

2、特點:先進先出

3、佇列的抽象資料型別描述

package 棧與佇列;

public

inte***ce

iqueue

4、順序佇列及其基本操作的實現

package 棧與佇列;

public

class

sqqueue

implements

iqueue

@override

public

boolean

isempty()

@override

public

intlength()

@override

public object peek()

else

}@override

public

void

offer

(object o)

throws exception

else

}@override

public object poll()

else

next = next -1;

return o;}}

}

5、鏈式佇列及其基本操作的實現

package 棧與佇列;

public

class

linkqueue

implements

iqueue

@override

public

boolean

isempty()

@override

public

intlength()

return length;

}@override

public object peek()

else

}@override

public

void

offer

(object o)

throws exception

}@override

public object poll()

else

}}

6、迴圈佇列及其基本操作的實現

package 棧與佇列;

public

class

circlequeue

implements

iqueue

@override

public

void

clear()

@override

public

boolean

isempty()

@override

public

intlength()

@override

public object peek()

else

}@override

public

void

offer

(object o)

throws exception

else

}@override

public object poll()

else

}}

注意:

佇列初始化:front = rear = 0;

隊空條件:front == rear;

隊滿條件:(rear+1) % maxsize == front;

隊首指標進1: front = (front+1) % maxsize;

隊尾指標進1: rear = (rear+1) % maxsize;

資料結構 第三章 棧與佇列

3.1 棧 3.1.1 抽象資料型別棧的定義 棧是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂。相反地,表頭端稱為棧底。棧是後進先出 lifo 的線性表。基本操作 top 返回棧頂元素 pop 彈出棧頂元素 push a 將元素a壓入棧 empty 判斷是否為...

資料結構 第三章 棧與佇列

定義 限定僅在表尾進行插入和刪除操作的線性表。即後進先出的線性表 last in first out 表尾即棧頂top,表頭即棧低bottom。儲存方式 順序棧 鏈棧 順序棧 一組位址連續的儲存單元,一次存放自棧低到棧頂的資料元素。結構 兩個指標top,base,乙個int size描述棧的大小 空...

資料結構與演算法分析 第三章 棧

棧是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧頂 top 對棧的基本操作有push 進棧 和pop 出棧 前者相當於插入,後者則是刪除最後插入的元素。棧是後進先出的 lifo 表,一般的模型中,存在某個元素位於棧頂,而該元素是唯一的可見元素。只有棧頂元素是可以訪問的 棧是乙個表...