From 8a691960a2859632e600ef0b3106edf6c684ac6d Mon Sep 17 00:00:00 2001 From: fu08 <1007702646@qq.com> Date: Tue, 17 Nov 2020 23:19:15 +0800 Subject: [PATCH] Complete HomeWork --- .../ArrayQueue.class" | Bin 0 -> 945 bytes .../ArrayStack.class" | Bin 0 -> 1655 bytes .../ArrayStack.java" | 57 +++++++++++++ .../LinkedStack.class" | Bin 0 -> 878 bytes .../LinkedStack.java" | 59 ++++++++++++++ .../Node.class" | Bin 0 -> 282 bytes .../QueueLinked.class" | Bin 0 -> 1095 bytes .../QueueLinked.java" | 67 +++++++++++++++ .../QueueNode.class" | Bin 0 -> 468 bytes .../QueueTest.class" | Bin 0 -> 649 bytes .../QueueTest.java" | 76 ++++++++++++++++++ 11 files changed, 259 insertions(+) create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/ArrayQueue.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/ArrayStack.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/ArrayStack.java" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/LinkedStack.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/LinkedStack.java" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/Node.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/QueueLinked.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/QueueLinked.java" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/QueueNode.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/QueueTest.class" create mode 100644 "\350\257\276\345\220\216\344\275\234\344\270\232/QueueTest.java" diff --git "a/\350\257\276\345\220\216\344\275\234\344\270\232/ArrayQueue.class" "b/\350\257\276\345\220\216\344\275\234\344\270\232/ArrayQueue.class" new file mode 100644 index 0000000000000000000000000000000000000000..d54280d8ac513ae6a17e029c482d308af2745b3d GIT binary patch literal 945 zcmZ`$O-~b16g_Wd+9|^TrFLOA_v_qq?)&j~XAi(tmFZXJf<<%D z#6SX}}L;rU)T$~ZHTouj)` zT9yJWlb$ahRf|h9n01#5%$QzftXK{=1oTXHL7-_Sbn|Nu-EzGi_bTJnLV<{$Uy%W~ zG?b-W8?SBT40k3}X1caFkj2tEajltBHOR|xPc3PFQk7LXD=Xpfs=MymNMXoE6Pj(b zAZepjnbYVJ=vMVy!Sz>i(^Wt8igN6EUY0|z@j_EG|%9&y*5aBbMS2Fv#-^ z@k4V+<4T0DL$s1y56;vnrt1`~2#iXHmAcxMYU)N9ojtMN_^CC*= z#0!%p#+zk{nTg9{;)N`uEZ~oO{{?S_?aq6%IG^|QFj^LG-nad}_j{iAdEWQ@@$cqu z0LJlA1b(E$h+#~^aUJ85Ped3d!Z?XnLU=WT*Dx8u6keC(Qz5*e<8%aVNQW>jc}Bt+ z32#d6td2RUOiOr6!rKZyr&Lx@^9rGySvGUFb4?*&Rw^cQ_s5wl=2bIQFpDdx#pNqj z&Y4sQPT57XG(cXp(A4#t%cg^vQ;^6E*E&B+tu0Cvf#0BNue$4n7L2S znq}`kXjkWIg#r=Ewd!Ssp5dq2guqvp7GuLBPhZm)KCjxJla3@*p;s@LKAUz?S53R9 z&^z2LBI{J_;>x7JMzW<^C1=gq(rd@GD0Ul6iev+WIAq`;`V91=Pa(SB2m=Fn*1!uG z(lKw~9lWbBuygCH?Txz+wyy7NegF3_U+-N1X8X(A+dr&5ymwni#=u!D=vXvx4(}N_ zf+5P{lfUk7KKOBy^$&mlcKhacqiKZ$dvuMKXKHpKZ&f&|!v@|*R>FA$AK-$453xWw zdkPG^h?fi;!=aYGv)8JQwMwH(HHU6D+_X!nbF{=Ei)F5Iy4@~w>oILDOHqM-woIwX z&d$A#=ZlWDBE9NY%|gvuyd+bYZyujlA_gA(f(EPxVZJMMvf)Mj}P!cllk+PCM)1(j+{9RCF{ZX9RJPmUNQH_H=yF$I<$Cb z9lm({9(=#TzmC8fZxs$R_9DO-AbyZ2I@%E;vfyzUJiN4r*G>RUy9M2U2Y%mAe5bh> zL6^XSf&HH>QD`D7(i&|wq{S$z2OSg|rFlmvPTFKgQ9>WZut#u-9tgoP-+e?f zWO?QWqQYX3MRU(~nU?%{GL2;tKR==Br+eTe0-S=uIm9@JK9a?0g3yJa9-&Xi2-yxk z;T$5P7!z?tP{WuYHs;dsROH8zV3fHIGE03xj1>EuOXK{v9(^$wf%fq$Ea>c7=qYJwibJ!^1ES ylOEkHm56(TTZoaOCzJ5gvO0Pb0Wa5aVE@t`r!C{0$_ZLBLGw-$EJY9vFaHOLLq%Tz literal 0 HcmV?d00001 diff --git "a/\350\257\276\345\220\216\344\275\234\344\270\232/ArrayStack.java" "b/\350\257\276\345\220\216\344\275\234\344\270\232/ArrayStack.java" new file mode 100644 index 0000000..22e5ca5 --- /dev/null +++ "b/\350\257\276\345\220\216\344\275\234\344\270\232/ArrayStack.java" @@ -0,0 +1,57 @@ +//用数组实现栈 +public class ArrayStack { + private int top; + private int capacity; + private Object [] array; + public ArrayStack(){ + top=-1;//栈顶指针为-1 + capacity=5;//初始化容量的大小 + array=new Object[capacity];//初始化数组 + } + + public boolean isEmpty(){//判断是否为空 + return top==-1; + } + + public boolean isFull(){//判断是否是满栈的 + return top==capacity-1; + } + + public void push(Object data){//入栈操作 + if(isFull()){ + System.out.println("栈已经满,插入失败"); + return; + } + array[++top]=data; + } + + public Object pop(){//返回栈顶元素,并且删除 + Object data=0; + if(isEmpty()){ + System.out.println("栈为空,返回-1"); + data=-1; + } + data=array[top--]; + return data; + } + + public Object top(){//返回栈顶元素,但是不删除 + return array[top]; + } + + public int size(){//返回栈顶元素,但是不删除 + return top; + } + + public void showAll(){//显示栈中所有的值 + for(int i=top;i>=0;i--){ + System.out.print(" "+array[i]); + } + } + public static void main(String[] args) { + ArrayStack stack=new ArrayStack(); + stack.push(1); + stack.push(2); + stack.showAll(); + } +} \ No newline at end of file diff --git "a/\350\257\276\345\220\216\344\275\234\344\270\232/LinkedStack.class" "b/\350\257\276\345\220\216\344\275\234\344\270\232/LinkedStack.class" new file mode 100644 index 0000000000000000000000000000000000000000..d56e8060a2fea5da789c0217f29f595fd9825ba7 GIT binary patch literal 878 zcmZXS&2JJ>6vfXQ=A+CE{Xk1CP+N*cn8A|Rs%bQCOiW0ac2Q$==Kzxyia=UuT>9U1 zOQN1POl=bbdGF4>@15U0cjm|MuipV|qh!KFHjX$}4BRyl!>Y-L zwK$`kT-N1d-oQNr8v^QK;5P;I+HS8IJZ12#)ol%)3&e`0*DSwaT41i$>IS>R_x0fT zm0#~LqxOd--;b)sK`^NKCj)`m;#9db-PjVP`@Mb$s0vuo$?0ix zzc)N?1TR|>F;D1G&1klX9VGhFHk;* zr{`skHDCrRH3SxrjPA6ViLtWnTtFEk>3l=%ZDs_Ox6iQV$n*%BSH8~cb;@5S+y}4vvF~6Vjxi1Q(%z4n%{5gk+I|i2iI&k-;$%vQfT8fsj)003H=F zM=`T|JF|0p{r|fF7~;)?gH{7Jo(+XAUR=BioP)|MEs(juF7$6HsK<-lT94R_vmz@e z6uR@?ie<{VAc(U<0;da&ZTFK>R^09 zzo$o*baOs(b#}p+v!b%KG-2s;i&OgYVMo#^bW{a9|8L=}w4O2rYJ#^;R1;P9piRW!n{U`$0!;w%2uPc5c# zpBB54x}^*FP6#SEbgC=y;I3t)>3Jr{rs@N9DigUz?G_y{^fX_n(jId<&4*Z)pd}N{ zd}Sa17Y9G8XN0tZ(FMASTE??H^${VsmWMVWLLv``49@pV37li}u>pj;2=_2kMpuM% zrf|VSR-8mkhSuTOMKc%YF6u%%aLs6&D3UkI5-(jv(_wZ>rn>SdwrlGsCQQzB*faf5 zxNqbvKPNRIKsjNwU=XdC;HiOC7aRe}f!-IGJY%<%d-;Gukyw)(Ip{6?a`}u}nTa3E z)YhTcD6Vly#c5Mz$DofczFUuHW77T z@nf=*4h`+VJ+lcUryQVbm!C!-j-OxQeBIDVl;L9_TtoS=Ks-PXUd$kA&6 literal 0 HcmV?d00001 diff --git "a/\350\257\276\345\220\216\344\275\234\344\270\232/QueueLinked.java" "b/\350\257\276\345\220\216\344\275\234\344\270\232/QueueLinked.java" new file mode 100644 index 0000000..23cbb42 --- /dev/null +++ "b/\350\257\276\345\220\216\344\275\234\344\270\232/QueueLinked.java" @@ -0,0 +1,67 @@ +//用链表实现队列 +class QueueNode { + Object data; // 节点存储的数据 + QueueNode next; // 指向下个节点的指针 + + public QueueNode() { + this(null, null); + } + + public QueueNode(Object data) { + this(data, null); + } + + public QueueNode(Object data, QueueNode next) { + this.data = data; + this.next = next; + } +} + +public class QueueLinked { + QueueNode front; // 队首指针 + QueueNode rear; // 队尾指针 + + public QueueLinked() { + this.rear = null; + this.front = null; + } //将一个对象追加到队列的尾部 + public void enqueue(Object obj) { + //如果队列是空的 + if (rear == null && front == null) { + rear = new QueueNode(obj); + front = rear; + } else { + QueueNode node = new QueueNode(obj); + rear.next = node; + rear = rear.next; + } + } + //队首对象出队 + //return 出队的对象,队列空时返回null + public Object dequeue() { + //如果队列空 + if (front == null) { + return null; + } + //如果队列中只剩下一个对象 + if (front == rear && rear != null) { + QueueNode node = front; + rear = null; + front = null; + return node.data; + } + Object obj = front.data; + front = front.next; + return obj; + } + public static void main(String[] args) { + QueueLinked q = new QueueLinked(); + q.enqueue("张三"); + q.enqueue("李斯"); + q.enqueue("赵五"); + q.enqueue("王一"); + for (int i = 0; i < 4; i++) { + System.out.println(q.dequeue()); + } + } +} \ No newline at end of file diff --git "a/\350\257\276\345\220\216\344\275\234\344\270\232/QueueNode.class" "b/\350\257\276\345\220\216\344\275\234\344\270\232/QueueNode.class" new file mode 100644 index 0000000000000000000000000000000000000000..ce63324a4e06f9433f0f623068b9514cb0e3aef2 GIT binary patch literal 468 zcmZvY%}T>S6otO&L~)-qgQV6JN>Y3+7p36B2k@c9 zGlOW+E^^46x!<|>&d2B5JAgABc-X+U2OB#s|2j%`9qc*S7qE(~&IICgoXxYrB&!|= zH~CnO>T}*z@}(B=)7wTiayTs{P5Yv(%KB2k>>WL@=8CpJn3k0sHqW`7-DmlPPN(-j zQUTpH{z?N?;@wS~*+^cODksv-8UG}U6E$Q2ACZzEfP>8dE<6GEXGS7_cR`mc+k6az z9~mkXMm50&5l~w^9qKb{5+Rllue1c(R8ONeLmUl+D}WA7`s)Do=)MM`Z{UJ#E6O+Tus#N2T2P z1spkY=@|~G1QI`hKZC>(3CgS^@$gEs<8Qv1`DXU(uTNh9+{Zl!E-r9fbYS3;jmx;A zy@rDYT-Dw+ZLVvxsIeOyH#wFVtcNOA`D2Dku=0Yze44zH46{8I%V$M2km;@%goK!p zP%%S2*zX;RBhd*(e9-CVsfrKQb>d7v7sJu&PxP`#Q3R)a(7q@Z8#VVREI%v7Li#3fk8SFm=8T`MJwg-oD zn3LXMQ_K1%(jRBJjA+oLp!ocB43%_tXoj37ks?}W;40gQM)|m0$R0zjEd4)?SRnXu!rfoF`vX-=abX=zfOr(sxc!>3xLRo}fB`Re99#o%itCjS2W0gB_oKp9arR zP;=hFp91y-&hhCt-ODI@EmIf3go7&PsB;6HpF literal 0 HcmV?d00001 diff --git "a/\350\257\276\345\220\216\344\275\234\344\270\232/QueueTest.java" "b/\350\257\276\345\220\216\344\275\234\344\270\232/QueueTest.java" new file mode 100644 index 0000000..a17d17f --- /dev/null +++ "b/\350\257\276\345\220\216\344\275\234\344\270\232/QueueTest.java" @@ -0,0 +1,76 @@ +//使用数组实现队列 +public class QueueTest { +public static void main(String[] args) { +ArrayQueue queue = new ArrayQueue(10); +System.out.println(queue.isEmpty()); +for (int i = 0; i < 10; i++) { +queue.insert(i); +} +System.out.println(queue.isFull()); +while (!queue.isEmpty()) { +System.out.println(queue.remove()); +} +} +} +class ArrayQueue { +private int[] arrInt;// 内置数组 +private int front;// 头指针 +private int rear;// 尾指针 +public ArrayQueue(int size) { +this.arrInt = new int[size]; +front = 0; +rear = -1; +} +/** +* 判断队列是否为空 +* +* @return +*/ +public boolean isEmpty() { +return front == arrInt.length; +} +/** +* 判断队列是否已满 +* +* @return +*/ +public boolean isFull() { +return arrInt.length - 1 == rear; +} +/** +* 向队列的队尾插入一个元素 +*/ +public void insert(int item) { +if (isFull()) { +throw new RuntimeException("队列已满"); +} +arrInt[++rear] = item; +} +/** +* 获得对头元素 +* +* @return +*/ +public int peekFront() { +return arrInt[front]; +} +/** +* 获得队尾元素 +* +* @return +*/ +public int peekRear() { +return arrInt[rear]; +} +/** +* 从队列的对头移除一个元素 +* +* @return +*/ +public int remove() { +if (isEmpty()) { +throw new RuntimeException("队列为空"); +} +return arrInt[front++]; +} +} \ No newline at end of file -- Gitee