1 00:00:00,000 --> 00:00:05,204 2 00:00:05,204 --> 00:00:07,370 Doug LLOYD: Eğer ettik Yani eğer yığın video izledim 3 00:00:07,370 --> 00:00:09,870 bu muhtemelen hissetmek oluyor deja vu biraz gibi. 4 00:00:09,870 --> 00:00:13,850 Bu, çok benzer bir kavram oluyor sadece üzerinde hafif bir bükülme ile. 5 00:00:13,850 --> 00:00:15,530 Biz sıralarında hakkında şimdi konuşmak için gidiyoruz. 6 00:00:15,530 --> 00:00:19,350 Yani bir yığın benzer bir kuyruk, veri yapısının bir başka türüdür 7 00:00:19,350 --> 00:00:22,412 Biz korumak için kullanabileceğiniz organize bir şekilde veri. 8 00:00:22,412 --> 00:00:24,120 Bir yığın benzer şekilde, Bu uygulanabilir 9 00:00:24,120 --> 00:00:27,000 bir dizi ya da bir bağlantılı liste olarak. 10 00:00:27,000 --> 00:00:30,320 Bir yığın farklı kurallar Biz belirlemek için kullandıkları 11 00:00:30,320 --> 00:00:34,210 şeyler eklenmiş ve kaldırıldı olsun zaman Bir kuyruk biraz farklıdır. 12 00:00:34,210 --> 00:00:36,590 >> Bir yığın, farklı olarak, LIFO yapısı, 13 00:00:36,590 --> 00:00:45,610 , İlk out son, bir kuyruk bir FIFO olduğunu İlk yapı, FIFO, ilk önce. 14 00:00:45,610 --> 00:00:49,320 Şimdi muhtemelen, kuyruklar sıralara bir benzetme var. 15 00:00:49,320 --> 00:00:52,820 Hiç satırında oldum bir eğlence parkı ya da bir bankada, 16 00:00:52,820 --> 00:00:56,430 Bir adalet tür var yapısının uygulanması. 17 00:00:56,430 --> 00:00:59,160 Doğrultusunda ilk kişi de Banka ilk kişidir 18 00:00:59,160 --> 00:01:00,760 kim vezne konuşmak alır. 19 00:01:00,760 --> 00:01:03,522 >> Bu bir yarış tür olacağını tek yolu ise alt 20 00:01:03,522 --> 00:01:06,730 En vezne konuşmak lazım Banka hattında son kişi oldu. 21 00:01:06,730 --> 00:01:09,146 Herkes her zaman isteyeyim doğrultusunda son kişi olmaya, 22 00:01:09,146 --> 00:01:12,580 ve ilk kişi oldu kim Kim, bir süre bekleyen olmuştur 23 00:01:12,580 --> 00:01:14,715 saatlerce orada olabilir, ve saat ve saat 24 00:01:14,715 --> 00:01:17,590 aslında bir şans var önce bankada para çekebilirsiniz. 25 00:01:17,590 --> 00:01:22,510 Ve böylece kuyruklar sıralama vardır adalet yapısının uygulanması. 26 00:01:22,510 --> 00:01:25,780 Ama bu mutlaka anlamına gelmez yığınları sadece kötü bir şey olduğunu 27 00:01:25,780 --> 00:01:28,160 kuyruklar bunu yapmak için başka bir yolu olduğunu. 28 00:01:28,160 --> 00:01:32,420 Yani yine bir sıra ilk olarak ilk çıkışı, son bir yığın karşı, 29 00:01:32,420 --> 00:01:34,440 ilk önce. 30 00:01:34,440 --> 00:01:36,190 Bir yığın benzer şekilde, iki operasyonları var 31 00:01:36,190 --> 00:01:38,470 Biz sıralarda gerçekleştirebileceği. 32 00:01:38,470 --> 00:01:43,910 Isimleri eklemek, hangi enqueue vardır kuyruğun sonuna yeni bir unsur, 33 00:01:43,910 --> 00:01:47,330 ve dequeue, eski kaldırmak için 34 00:01:47,330 --> 00:01:49,670 sıranın önüne gelen öğesi. 35 00:01:49,670 --> 00:01:53,600 Yani biz öğeler eklemek için gidiyoruz kuyruğun ucuna, 36 00:01:53,600 --> 00:01:57,220 ve biz öğeleri kaldırmak için gidiyoruz sıranın önünden. 37 00:01:57,220 --> 00:02:00,790 Yine yığını ile, biz ekleyerek edildi yığının üstüne unsurları 38 00:02:00,790 --> 00:02:03,380 ve unsurları kaldırarak yığının üstünden. 39 00:02:03,380 --> 00:02:07,570 Enqueue Yani, bu ekleyerek bulunuyor ön kaldırma ucu. 40 00:02:07,570 --> 00:02:10,639 Orada eski bir şey So her zaman bir sonraki şey 41 00:02:10,639 --> 00:02:13,620 Biz çalışırsanız çıkıp ve bir şey sıradan çıkarma. 42 00:02:13,620 --> 00:02:18,330 >> Yani yine, sırası ile, biz dizi tabanlı uygulamalar 43 00:02:18,330 --> 00:02:20,110 ve bağlantılı liste uygulamaları tabanlı. 44 00:02:20,110 --> 00:02:24,620 Biz tekrar başlayacağız dizi tabanlı uygulamalar. 45 00:02:24,620 --> 00:02:27,070 Yapı tanımı oldukça benzer görünüyor. 46 00:02:27,070 --> 00:02:30,720 Biz başka bir dizi var Orada veri türü değeri, 47 00:02:30,720 --> 00:02:32,690 bu nedenle keyfi veri türlerini tutabilir. 48 00:02:32,690 --> 00:02:35,570 Tekrar kullanmak için gidiyoruz Bu örnekte, tam sayılardır. 49 00:02:35,570 --> 00:02:39,830 >> Ve sadece olduğu gibi bizim dizi tabanlı yığını uygulaması, 50 00:02:39,830 --> 00:02:42,340 biz kullanıyoruz, çünkü Dizi, biz mutlaka 51 00:02:42,340 --> 00:02:46,850 Bu sınırlama var C tür bir biz, hangi bize zorlar 52 00:02:46,850 --> 00:02:51,670 herhangi bir dinamizmi yok bizim büyümek ve dizi küçültmek için yeteneği. 53 00:02:51,670 --> 00:02:55,710 Biz başında karar vermek zorunda şeylerin sayısı nedir 54 00:02:55,710 --> 00:02:59,300 Biz bu işe koyabilirsiniz kuyruğu ve bu durumda, 55 00:02:59,300 --> 00:03:02,070 kapasite bazı sterlin olacağını Bizim kodunda sabit tanımlamıştır. 56 00:03:02,070 --> 00:03:05,430 Bu amaçlar için Video, kapasite 10 olacak. 57 00:03:05,430 --> 00:03:07,690 >> Biz takip etmek gerek Sıranın ön 58 00:03:07,690 --> 00:03:11,160 bu yüzden hangi eleman biliyoruz Biz sıradan çıkarma istiyoruz, 59 00:03:11,160 --> 00:03:15,070 ve biz de takip etmek gerek şey elemanlarının sayısını else-- 60 00:03:15,070 --> 00:03:16,690 Bizim kuyrukta var. 61 00:03:16,690 --> 00:03:19,360 Biz takip değiliz dikkat edin sıranın sonunda, sadece 62 00:03:19,360 --> 00:03:21,150 sıranın boyutu. 63 00:03:21,150 --> 00:03:24,310 Ve bunun sebebi umarım olacak Bir an biraz daha net hale gelir. 64 00:03:24,310 --> 00:03:26,143 Biz tamamladıktan sonra Bu tip tanımı, 65 00:03:26,143 --> 00:03:29,080 Biz yeni bir veri türü var , kuyruk denilen hangi şimdi can 66 00:03:29,080 --> 00:03:30,630 Bu veri türü değişkenleri bildirmek. 67 00:03:30,630 --> 00:03:35,350 Ve biraz karışacak, ben karar verdim , mektup bu kuyruk q aramak için 68 00:03:35,350 --> 00:03:38,090 yerine veri türü q q. 69 00:03:38,090 --> 00:03:39,600 >> Yani burada bizim kuyruk olduğunu. 70 00:03:39,600 --> 00:03:40,700 Bu bir yapıdır. 71 00:03:40,700 --> 00:03:45,730 Üç üyeleri veya üçünü içeren alanları, boyut KAPASİTESİ bir dizi. 72 00:03:45,730 --> 00:03:47,340 Bu durumda, KAPASİTESİ 10'dur. 73 00:03:47,340 --> 00:03:49,580 Ve bu dizidir tamsayılar tutmak için gidiyoruz. 74 00:03:49,580 --> 00:03:55,240 Yeşil bizim sıranın ön olduğunu Bir sonraki eleman kaldırıldı ve kırmızı olmak üzere 75 00:03:55,240 --> 00:03:58,610 sıranın boyutu olacak, Kaç unsurlar şu anda 76 00:03:58,610 --> 00:04:01,190 kuyrukta mevcut. 77 00:04:01,190 --> 00:04:05,300 Biz q.front eşittir demek eğer öyleyse 0 ve q.size boyutu eşittir 0-- 78 00:04:05,300 --> 00:04:07,120 Biz bu alanlara 0s koyuyorlar. 79 00:04:07,120 --> 00:04:11,070 Ve bu noktada, biz hemen hemen konum Bizim sıra ile çalışmaya başlamak için hazır. 80 00:04:11,070 --> 00:04:14,140 >> Yani ilk operasyon biz gerçekleştirmek şey enqueue etmek, 81 00:04:14,140 --> 00:04:16,860 yeni bir öğe eklemek için sıranın sonu. 82 00:04:16,860 --> 00:04:19,089 Peki biz ne gerekiyor Genel durumda mı? 83 00:04:19,089 --> 00:04:23,690 Peki bu fonksiyon ihtiyaçlarını enqueue Bizim kuyruğuna bir işaretçi kabul etmek. 84 00:04:23,690 --> 00:04:26,370 Yine, biz ilan olsaydı küresel bizim kuyruk, 85 00:04:26,370 --> 00:04:29,490 Bunu yapmak için ihtiyacınız olmaz zorunlu ama genel olarak, 86 00:04:29,490 --> 00:04:32,330 işaretçiler kabul etmek gerek veri yapılarına 87 00:04:32,330 --> 00:04:35,040 Bu gibi, çünkü aksi halde biz konum value-- tarafından geçiyoruz 88 00:04:35,040 --> 00:04:38,140 sıranın kopyalarda geçen ve bu yüzden biz aslında değişen değiliz 89 00:04:38,140 --> 00:04:41,050 Biz değiştirmek niyetinde kuyruk. 90 00:04:41,050 --> 00:04:44,860 >> Bunu yapması gereken başka bir şey kabul olduğunu Uygun türde bir veri elemanı. 91 00:04:44,860 --> 00:04:46,818 Yine, bu durumda, bu kadar tamsayı olacak, 92 00:04:46,818 --> 00:04:49,330 ama sen keyfi olabilir değer olarak veri türünü bildirmek 93 00:04:49,330 --> 00:04:51,160 ve daha genel olarak kullanabilir. 94 00:04:51,160 --> 00:04:56,030 Yani, biz enqueue istiyoruz eleman var Biz sıranın sonuna eklemek istiyor. 95 00:04:56,030 --> 00:04:58,573 Sonra biz aslında istiyoruz Kuyruktaki verileri yerleştirin. 96 00:04:58,573 --> 00:05:01,490 Bu durumda, üzerine yerleştirerek Bizim dizinin doğru konumu, 97 00:05:01,490 --> 00:05:05,040 ve sonra biz boyutunu değiştirmek istiyoruz kuyruk, kaç unsurları biz 98 00:05:05,040 --> 00:05:07,050 Şu anda var. 99 00:05:07,050 --> 00:05:07,990 >> Öyleyse başlayalım. 100 00:05:07,990 --> 00:05:10,890 Burada, yine, genel olduğunu Form fonksiyonu beyanı 101 00:05:10,890 --> 00:05:13,980 enqueue neye benzeyeceğini için. 102 00:05:13,980 --> 00:05:14,910 Ve işte başlıyoruz. 103 00:05:14,910 --> 00:05:18,335 Numarasını enqueue edelim Kuyruğuna 28.. 104 00:05:18,335 --> 00:05:19,460 Peki ne yapacaksınız? 105 00:05:19,460 --> 00:05:23,390 Eh, bizim sıranın cephesidir 0 ve bizim sıranın boyutta 106 00:05:23,390 --> 00:05:29,680 0 ° C'de ve bu yüzden biz muhtemelen koymak istiyorum dizi elemanı sayısı sayısı 28 107 00:05:29,680 --> 00:05:31,124 0, değil mi? 108 00:05:31,124 --> 00:05:32,540 Yani biz şimdi o koydum. 109 00:05:32,540 --> 00:05:34,820 Peki şimdi ne değiştirmeniz gerekir? 110 00:05:34,820 --> 00:05:37,090 Biz değiştirmek istemiyoruz Sıranın ön, 111 00:05:37,090 --> 00:05:40,850 Biz neyi elemanı bilmek istiyorum çünkü daha sonra sıradan çıkarma gerekebilir. 112 00:05:40,850 --> 00:05:44,020 Yani neden biz ön orada var ne bir göstergesi çeşit 113 00:05:44,020 --> 00:05:46,439 Dizideki en eski şey. 114 00:05:46,439 --> 00:05:49,730 Peki array-- eski şey içinde Aslında, dizideki tek şey doğru 115 00:05:49,730 --> 00:05:53,540 şimdi-- olan 28'dir Dizi konumu 0. 116 00:05:53,540 --> 00:05:56,160 Yani biz istemiyoruz o yeşil numarasını değiştirmek 117 00:05:56,160 --> 00:05:57,910 çünkü eski unsur var. 118 00:05:57,910 --> 00:06:00,510 Aksine, biz boyutunu değiştirmek istiyoruz. 119 00:06:00,510 --> 00:06:04,110 Bu yüzden, bu durumda, yaparız 1 boyutunu artırmak. 120 00:06:04,110 --> 00:06:08,430 >> Nerede fikrinin Şimdi genel sıralama Bir sonraki eleman sıraya gidecek 121 00:06:08,430 --> 00:06:12,310 bu iki sayıyı eklemek için olduğu Birlikte, ön ve arka boyut, 122 00:06:12,310 --> 00:06:16,390 ve o nereye gelecek size anlatacağım Kuyruktaki eleman gidecek. 123 00:06:16,390 --> 00:06:18,130 Yani şimdi en başka bir numara enqueue edelim. 124 00:06:18,130 --> 00:06:20,250 En 33 enqueue edelim. 125 00:06:20,250 --> 00:06:24,480 Yani 33 içine gidecek Dizi yeri 0 artı 1. 126 00:06:24,480 --> 00:06:26,840 Bu durumda, bu yüzden gidiyor Dizi konumu 1 gitmek, 127 00:06:26,840 --> 00:06:29,500 ve şimdi bizim sıranın boyutu 2 olduğunu. 128 00:06:29,500 --> 00:06:31,840 >> Yine, biz değişen değil Bizim kuyruğun ön, 129 00:06:31,840 --> 00:06:34,730 28 hala çünkü eski elemanı ve biz 130 00:06:34,730 --> 00:06:38,220 biz sonunda olsun istiyorum aşağıdaki amaçlara unsurları kaldırarak, dequeuing için 131 00:06:38,220 --> 00:06:43,300 Bu kuyruktan biz bilmek istiyorum nerede eski unsurdur. 132 00:06:43,300 --> 00:06:48,620 Ve böylece biz her zaman korumak gerekir Nerede olduğunu, bazı göstergesi. 133 00:06:48,620 --> 00:06:50,410 Yani 0 orada ne olduğunu. 134 00:06:50,410 --> 00:06:52,910 Ön orada ne olduğunu. 135 00:06:52,910 --> 00:06:55,022 >> Enqueue içinde 's bir daha eleman, 19 olsun. 136 00:06:55,022 --> 00:06:56,980 Seni tahmin edebilirsiniz eminim nereye 19 gidecek. 137 00:06:56,980 --> 00:06:59,860 Bu içine gidecek Dizi yeri numarası 2. 138 00:06:59,860 --> 00:07:01,570 Yani 0 artı 2 var. 139 00:07:01,570 --> 00:07:03,199 Ve şimdi sıranın boyutu 3'tür. 140 00:07:03,199 --> 00:07:04,240 Biz bunu 3 unsurlar var. 141 00:07:04,240 --> 00:07:08,490 Yani biz vardı ve biz gidiyoruz değil Şu anda kadar, başka bir eleman enqueue 142 00:07:08,490 --> 00:07:11,370 bu dizi konuma gitmek istiyorum sayı 3, ve bizim kuyruk boyutu 143 00:07:11,370 --> 00:07:13,160 4 olurdu. 144 00:07:13,160 --> 00:07:15,279 Yani biz şimdi birkaç unsurları kuyruğa ettik. 145 00:07:15,279 --> 00:07:16,570 Şimdi bunları kaldırmak için başlayalım. 146 00:07:16,570 --> 00:07:19,450 Kuyruğunda onları sıradan çıkarma edelim. 147 00:07:19,450 --> 00:07:23,340 >> Tür, hangi pop Yani benzer yığınlar için bu analog, 148 00:07:23,340 --> 00:07:26,180 dequeue bir kabul etmesi gerekir Yine queue-- pointer, 149 00:07:26,180 --> 00:07:28,140 sürece küresel ilan ediyor. 150 00:07:28,140 --> 00:07:31,610 Şimdi konumunu değiştirmek istiyoruz sıranın ön. 151 00:07:31,610 --> 00:07:35,050 O tür giriyor oyuna, ön değişken, 152 00:07:35,050 --> 00:07:37,310 Biz kaldırmak çünkü bir kez Bir eleman, biz istiyoruz 153 00:07:37,310 --> 00:07:40,720 Bir sonraki en eski öğeye taşımak için. 154 00:07:40,720 --> 00:07:44,180 >> Sonra azaltmak istiyoruz kuyruk büyüklüğü, 155 00:07:44,180 --> 00:07:47,130 ve sonra biz değer dönmek istiyorum bu kuyruktan uzaklaştırılmıştır. 156 00:07:47,130 --> 00:07:48,921 Yine, biz sadece o atmak istemiyorum. 157 00:07:48,921 --> 00:07:51,170 Biz muhtemelen ayıklanması vardır Biz konum queue-- gelen bu 158 00:07:51,170 --> 00:07:54,170 biz bu umurumda çünkü dequeuing. 159 00:07:54,170 --> 00:08:01,080 Yani biz bu işlev dönmek istiyorum türü değerinin bir veri elemanı. 160 00:08:01,080 --> 00:08:04,360 Yine, bu durumda, değer bir tam sayıdır. 161 00:08:04,360 --> 00:08:05,670 >> Yani şimdi bir şeyler sıradan çıkarma edelim. 162 00:08:05,670 --> 00:08:09,310 Kuyruğunda bir öğe kaldırmak edelim. 163 00:08:09,310 --> 00:08:15,970 Dersek int x eşittir & q, işareti q-- Yine bu q veri işaretçisi var 164 00:08:15,970 --> 00:08:20,177 structure-- ne eleman dequeued olacak? 165 00:08:20,177 --> 00:08:23,840 166 00:08:23,840 --> 00:08:29,480 Bu durumda, birinci olduğu , ilk veri yapısı, FIFO üzerinden, 167 00:08:29,480 --> 00:08:33,690 Bu koymak ilk şey Sıra 28, ve bu nedenle, bu durumda, 168 00:08:33,690 --> 00:08:37,245 Biz dışarı 28 almaya gidiyoruz ne olduğunu kuyruk değil, 19, 169 00:08:37,245 --> 00:08:38,870 Bu yığın olsaydı biz yapardı. 170 00:08:38,870 --> 00:08:42,220 Biz sıranın dışında 28 almaya gidiyoruz. 171 00:08:42,220 --> 00:08:44,960 >> Biz ne benzer Bir yığın, biz aslında değiliz 172 00:08:44,960 --> 00:08:47,345 28 silmek için gidiyoruz sıraya kendisi, 173 00:08:47,345 --> 00:08:49,470 Biz sadece tür gidiyoruz bir o orada yokmuş gibi davranırız. 174 00:08:49,470 --> 00:08:51,678 Yani orada kalmak için gidiyor bellekte, ama biz sadece konum 175 00:08:51,678 --> 00:08:57,820 tür hareket ettirerek bunu görmezden gidiyor Bizim q verilerinin diğer iki alan 176 00:08:57,820 --> 00:08:58,830 yapısı. 177 00:08:58,830 --> 00:09:00,230 Biz ön değiştirmek için gidiyoruz. 178 00:09:00,230 --> 00:09:04,290 Q.front şimdi gidiyor şimdi, çünkü 1 olduğu 179 00:09:04,290 --> 00:09:07,740 Biz var en eski eleman bizim kuyruk, biz zaten 28 kaldırdık çünkü, 180 00:09:07,740 --> 00:09:10,460 hangi eski eski unsur oldu. 181 00:09:10,460 --> 00:09:13,540 >> Ve şimdi, biz değiştirmek istediğiniz Sıranın boyutu 182 00:09:13,540 --> 00:09:15,780 iki elemanın yerine üç. 183 00:09:15,780 --> 00:09:20,450 Şimdi hatırlıyorum daha önce dediğim zaman kuyruğuna öğeler eklemek istiyorum, 184 00:09:20,450 --> 00:09:26,000 Biz bir dizi konuma koymak bu, ön ve boyutu toplamıdır. 185 00:09:26,000 --> 00:09:29,050 Bu durumda Yani, biz hala koyuyoruz o, kuyruktaki bir sonraki eleman, 186 00:09:29,050 --> 00:09:33,360 Dizi konumu 3 ve içine Biz ikinci görürsünüz. 187 00:09:33,360 --> 00:09:35,730 >> Yani biz şimdi dequeued ettik bizim kuyruktan ilk unsur. 188 00:09:35,730 --> 00:09:36,480 Hadi bir daha yapalım. 189 00:09:36,480 --> 00:09:38,696 En başka kaldırmak edelim kuyruktan eleman. 190 00:09:38,696 --> 00:09:42,400 Eski durumda, akım eleman dizisi konumu 1'dir. 191 00:09:42,400 --> 00:09:44,220 Bu q.front bize ne söyler. 192 00:09:44,220 --> 00:09:46,980 Yani yeşil bir kutu olduğunu söyler Bu eski unsur var. 193 00:09:46,980 --> 00:09:49,310 Ve böylece x 33 olacak. 194 00:09:49,310 --> 00:09:52,130 Biz sadece tür unutmayacağım 33 dizide var olduğunu, 195 00:09:52,130 --> 00:09:55,100 ve şimdi, söylerim Kuyruktaki yeni eski elemanı 196 00:09:55,100 --> 00:09:58,900 Dizi konumu 2 ve boyutta olduğunu elemanların kuyruğunun, sayı 197 00:09:58,900 --> 00:10:02,152 Biz kuyrukta, 1 var. 198 00:10:02,152 --> 00:10:05,110 Şimdi bir şey enqueue, izin ve ben tür, bir saniye önce, bu birilerine 199 00:10:05,110 --> 00:10:10,340 ama biz içine 40 koymak istiyorsanız Kuyruk, nereye 40 gidecek? 200 00:10:10,340 --> 00:10:12,880 201 00:10:12,880 --> 00:10:17,730 Peki biz bunu koyarak oldum q.front artı kuyruk büyüklüğü, 202 00:10:17,730 --> 00:10:20,850 ve bu yüzden mantıklı Aslında burada 40 koymak. 203 00:10:20,850 --> 00:10:22,840 Şimdi de fark Bazı noktalarda, biz gidiyoruz 204 00:10:22,840 --> 00:10:27,980 sonuna kadar almak için q içinde bizim dizi, 205 00:10:27,980 --> 00:10:32,010 ama bu 28 ve silik 33-- teknik olarak, aslında konum 206 00:10:32,010 --> 00:10:33,300 açık alanlarda, değil mi? 207 00:10:33,300 --> 00:10:36,040 Ve böylece, biz eventually-- olabilir ekleyerek bu kural 208 00:10:36,040 --> 00:10:40,390 Bu iki beraberken- biz sonunda olabilir kapasitesinin büyüklüğüne göre mod gerek 209 00:10:40,390 --> 00:10:41,410 bu yüzden etrafında sarın olabilir. 210 00:10:41,410 --> 00:10:43,620 >> Biz eleman almak Yani eğer Biz eğer sayı 10 211 00:10:43,620 --> 00:10:48,790 eleman sayısı 10 değiştirerek, biz olur Aslında dizi konumu 0 koydum. 212 00:10:48,790 --> 00:10:50,997 Ve biz gittiğini Dizi affedersiniz bulunduğu yerlerde, 213 00:10:50,997 --> 00:10:53,080 biz onları birlikte toplasaydınız, ve biz numara var 214 00:10:53,080 --> 00:10:56,330 Biz koymak zorunda nerede 11 olacaktır Bu, burada, bu array-- bulunmayan 215 00:10:56,330 --> 00:10:58,200 o sınırların dışına giderdim. 216 00:10:58,200 --> 00:11:03,367 Biz 10 tarafından mod ve koyabilirsiniz bu dizi konumu 1. 217 00:11:03,367 --> 00:11:04,450 Yani kuyruklar işe nasıl. 218 00:11:04,450 --> 00:11:08,540 Onlar her zaman soldan gitmek için gidiyoruz sağ ve muhtemelen etrafında sarın. 219 00:11:08,540 --> 00:11:11,280 Ve sen onların olduğunu biliyorum Tam eğer boyut, kırmızı kutu olduğunu, 220 00:11:11,280 --> 00:11:13,710 kapasitesine eşit olur. 221 00:11:13,710 --> 00:11:16,720 Ve biz 40 ekledik kadar sonra Kuyruk, de ne yapmamız gerekiyor? 222 00:11:16,720 --> 00:11:19,890 Peki, eski elemanı Kuyrukta halen 19 olan 223 00:11:19,890 --> 00:11:21,990 bu yüzden değiştirmek istemiyoruz Sıranın ön, 224 00:11:21,990 --> 00:11:23,820 ama şimdi biz iki tane var Kuyruktaki elemanları, 225 00:11:23,820 --> 00:11:28,710 ve böylece biz artırmak istiyoruz 1 ila 2 için boyutu. 226 00:11:28,710 --> 00:11:31,820 >> Bu hoş çok beraber dizi tabanlı kuyruklar ile çalışan, 227 00:11:31,820 --> 00:11:33,630 ve yığın benzer, bir yol da vardır 228 00:11:33,630 --> 00:11:36,450 Bağlantılı bir liste olarak bir sıra uygulamak. 229 00:11:36,450 --> 00:11:40,150 Şimdi bu veri yapısı türü ise size tanıdık görünüyor, öyle. 230 00:11:40,150 --> 00:11:43,780 Bu, bir tek başlarına bağlantılı liste değil Bir iki kat bağlantılı liste. 231 00:11:43,780 --> 00:11:46,790 Ve şimdi, bir kenara olarak, o uygulamak aslında mümkün 232 00:11:46,790 --> 00:11:50,160 Bir tek tek bağlantılı liste olarak bir kuyruk, ama Ben, görselleştirme açısından düşünmek 233 00:11:50,160 --> 00:11:53,350 aslında görüntülemek için yardımcı olabilir Bir iki kat bağlantılı liste olarak bu. 234 00:11:53,350 --> 00:11:56,850 Ama kesinlikle mümkün Bir tek tek bağlantılı liste olarak yapıyoruz. 235 00:11:56,850 --> 00:12:00,110 >> Yani bir göz atalım bu ne gibi görünebilir. 236 00:12:00,110 --> 00:12:02,750 Biz enquue-- istiyorsanız bu yüzden şimdi, yine sensin 237 00:12:02,750 --> 00:12:05,360 Bir bağlantılı liste geçiş Burada modeli dayalı. 238 00:12:05,360 --> 00:12:08,420 Biz enqueue istiyorsanız, biz istiyoruz kuyu, yeni bir öğe eklemek için 239 00:12:08,420 --> 00:12:09,730 ne yapmamız gerekiyor? 240 00:12:09,730 --> 00:12:12,770 Her şeyden önce, iyi, çünkü Biz sonuna kadar ekliyoruz 241 00:12:12,770 --> 00:12:15,520 ve çıkartılması başlayan, muhtemelen 242 00:12:15,520 --> 00:12:20,050 Her iki işaretçiler korumak isteyen Baş ve bağlantılı listenin kuyruk? 243 00:12:20,050 --> 00:12:22,660 Kuyruk başka terim olan bağlantılı liste sonu, 244 00:12:22,660 --> 00:12:24,496 Bağlantılı Listedeki son unsur. 245 00:12:24,496 --> 00:12:26,620 Ve bunlar, muhtemelen olacaktır Yine, bizim için hayırlı olmasını 246 00:12:26,620 --> 00:12:28,477 küresel değişkenler ise. 247 00:12:28,477 --> 00:12:31,060 Ama şimdi yeni bir eklemek istiyorsanız eleman ne yapmamız gerekiyor? 248 00:12:31,060 --> 00:12:35,262 Ne biz sadece [? malak?] veya dinamik kendimiz için yeni bir düğüm ayrılamadı. 249 00:12:35,262 --> 00:12:38,220 Biz herhangi eklediğinizde Ve sonra, tıpkı Bir çift bağlantılı liste biz element, 250 00:12:38,220 --> 00:12:40,410 Sadece of-- sıralamak zorunda Burada bu son üç adım 251 00:12:40,410 --> 00:12:43,330 Sadece tüm hareketli üzeresiniz Doğru bir şekilde işaretçileri 252 00:12:43,330 --> 00:12:46,710 Böylece eleman eklendi alır zincir kırılmadan zincir 253 00:12:46,710 --> 00:12:49,580 veya yanlışlıktan çeşit yapma veya kaza çeşit olan 254 00:12:49,580 --> 00:12:54,505 böylece biz yanlışlıkla olur Bizim kuyrukta bazı unsurları yetim. 255 00:12:54,505 --> 00:12:55,880 İşte bu neye benzeyeceğini var. 256 00:12:55,880 --> 00:13:00,980 Biz eleman eklemek istediğiniz Bu kuyruğun sonuna 10. 257 00:13:00,980 --> 00:13:03,380 Burada eski elemanı Yani kafa tarafından temsil edilmektedir. 258 00:13:03,380 --> 00:13:06,800 Yani biz koymak ilk şey Burada bu varsayımsal sıraya. 259 00:13:06,800 --> 00:13:10,430 Ve kuyruk, 13, en çok Son zamanlarda elemanı ekledi. 260 00:13:10,430 --> 00:13:17,030 Ve böylece biz içine 10 enqueue istiyorsanız Bu kuyruk, biz 13 sonra koymak istiyorum. 261 00:13:17,030 --> 00:13:19,860 Ve böylece biz dinamik gidiyoruz yeni bir düğüm için yer tahsis 262 00:13:19,860 --> 00:13:23,280 ve emin olmak için boş olup olmadığını kontrol edin Biz bir bellek hatası yok. 263 00:13:23,280 --> 00:13:27,040 Sonra biz gidiyoruz bu düğüm içine 10 koyun, 264 00:13:27,040 --> 00:13:30,030 ve şimdi biz dikkatli olmak gerekir Biz işaretçileri düzenlemek nasıl 265 00:13:30,030 --> 00:13:32,180 bu yüzden zinciri kırmak istemem. 266 00:13:32,180 --> 00:13:38,910 >> Biz 10'un önceki alanını ayarlayabilirsiniz Eski kuyruk geri işaret, 267 00:13:38,910 --> 00:13:41,620 ve '10 yılından beri olacak bir noktada yeni kuyruk 268 00:13:41,620 --> 00:13:44,459 Bunların hepsi zaman zincirler bağlanır, 269 00:13:44,459 --> 00:13:46,250 hiçbir şey gelip gidiyor sonra 10 şimdi. 270 00:13:46,250 --> 00:13:49,880 Ve böylece 10'un sonraki işaretçi null işaret eder, 271 00:13:49,880 --> 00:13:53,580 biz ettik sonra ve daha sonra biz, bunu sonra , zincir 10 geriye bağlantılı 272 00:13:53,580 --> 00:13:57,780 eski kafa, ya da, bahane alabilir Bana, sıranın eski kuyruk. 273 00:13:57,780 --> 00:14:02,980 Sıranın eski son, 13 ve 10 işaret yapmak. 274 00:14:02,980 --> 00:14:08,220 Ve şimdi, bu noktada, biz Bu kuyruğuna sayı 10 kuyruğa. 275 00:14:08,220 --> 00:14:14,740 Şimdi yapmamız gereken tek şey, sadece hareket olduğunu Kuyruk 10 yerine 13 işaret etmek. 276 00:14:14,740 --> 00:14:17,630 >> Dequeuing aslında popping çok benzer 277 00:14:17,630 --> 00:14:21,710 bir istiften Bağlantılı bir liste olarak uygulanan 278 00:14:21,710 --> 00:14:24,040 Eğer yığınları videoyu gördüm eğer. 279 00:14:24,040 --> 00:14:27,280 Yapmamız gereken tek şey başlamak olduğunu başlayan ikinci elemanı bulmak, 280 00:14:27,280 --> 00:14:30,480 ilk elemanı ücretsiz, ve daha sonra başını hareket 281 00:14:30,480 --> 00:14:32,930 ikinci eleman işaret etmek. 282 00:14:32,930 --> 00:14:37,920 Muhtemelen daha iyi görselleştirmek için sadece bu konuda ekstra açık olmak. 283 00:14:37,920 --> 00:14:39,230 Yani burada bizim kuyruk tekrar var. 284 00:14:39,230 --> 00:14:42,600 12 eski elemanıdır Bizim kuyrukta, baş. 285 00:14:42,600 --> 00:14:46,210 10 yeni unsurdur Bizim kuyrukta, bizim kuyruğunda. 286 00:14:46,210 --> 00:14:49,310 >> Ve böylece biz istediğinizde bir eleman sıradan çıkarma, 287 00:14:49,310 --> 00:14:52,202 Biz eski elemanı kaldırmak istiyorum. 288 00:14:52,202 --> 00:14:52,910 Peki ne yapacağız? 289 00:14:52,910 --> 00:14:55,243 Peki biz kastetmek işaretçisi ayarlayın Bu, baş başlar 290 00:14:55,243 --> 00:14:57,840 ve biz o kadar taşıyın o ikinci eleman işaret 291 00:14:57,840 --> 00:15:02,290 Bu trav söyleyerek bir şey queue-- trav sonraki ok eşittir, örneğin, 292 00:15:02,290 --> 00:15:07,170 işaret etmek için orada trav hareket edeceğini Biz 12 sıradan çıkarma sonrasında, 15, 293 00:15:07,170 --> 00:15:13,030 Biz 12 kaldırdıktan sonra veya olacak Daha sonra en eski unsur haline. 294 00:15:13,030 --> 00:15:16,360 >> Şimdi ilk bir tutun var işaretçi kafası üzerinden eleman 295 00:15:16,360 --> 00:15:19,440 ve ikinci eleman işaretçi trav yoluyla. 296 00:15:19,440 --> 00:15:25,170 Biz artık ücretsiz kafa olabilir ve daha sonra biz hiçbir şey artık 15 önce gelen söylüyorlar. 297 00:15:25,170 --> 00:15:29,990 Yani biz 15 önceki değiştirebilirsiniz işaretçi null işaret etmek, 298 00:15:29,990 --> 00:15:31,874 ve biz sadece başını üzerinde hareket. 299 00:15:31,874 --> 00:15:32,540 Ve işte başlıyoruz. 300 00:15:32,540 --> 00:15:35,840 Şimdi başarıyla var 12 dequeued ve şimdi biz 301 00:15:35,840 --> 00:15:39,180 4 elemanların başka bir sıra var. 302 00:15:39,180 --> 00:15:41,700 Bu hemen hemen hepsi , sıralara var 303 00:15:41,700 --> 00:15:45,810 Her iki dizi tabanlı ve bağlantılı liste tabanlı. 304 00:15:45,810 --> 00:15:46,860 Ben Doug Lloyd değilim. 305 00:15:46,860 --> 00:15:49,100 Bu CS 50. 306 00:15:49,100 --> 00:15:50,763