1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:05,120 [음악 연주] 3 00:00:05,120 --> 00:00:12,026 4 00:00:12,026 --> 00:00:12,900 스피커 1 : 좋습니다. 5 00:00:12,900 --> 00:00:14,600 모든 사람은 다시 섹션에 오신 것을 환영합니다. 6 00:00:14,600 --> 00:00:18,660 여러분 모두가 성공적으로 희망 퀴즈에서 회복 7 00:00:18,660 --> 00:00:19,510 지난 주. 8 00:00:19,510 --> 00:00:22,564 나는 항상 조금 미친 짓이야 알고있다. 9 00:00:22,564 --> 00:00:25,230 당신이 있다면 내가 전에 말했듯 표준 편차 이내 10 00:00:25,230 --> 00:00:28,188 정말 특히, 그것에 대해 걱정하지 마십시오 덜 편안한 섹션을 참조하십시오. 11 00:00:28,188 --> 00:00:30,230 그것은 당신이 있어야 할 곳에 대해입니다. 12 00:00:30,230 --> 00:00:32,850 >> 당신은 멋진, 훌륭한 한 경우. 13 00:00:32,850 --> 00:00:33,650 당신에게 명예. 14 00:00:33,650 --> 00:00:36,149 그리고 당신이 느끼는 경우에 당신이 필요로 좋아 조금 더 도와주세요 15 00:00:36,149 --> 00:00:38,140 도달 주시기 바랍니다 TF가 어떤 밖으로. 16 00:00:38,140 --> 00:00:40,030 우리는 여기에 도움이한다. 17 00:00:40,030 --> 00:00:40,960 >> 우리가 가르치는 이유입니다. 18 00:00:40,960 --> 00:00:44,550 내가 당신을 위해 여기에 매주 월요일 해요 이유 목요일에 남자와 사무실에서 시간. 19 00:00:44,550 --> 00:00:48,130 그래서 알려 주시기 바랍니다 당신은 아무것도에 대한 걱정이된다면 20 00:00:48,130 --> 00:00:52,450 또는 퀴즈에 아무것도 경우 거기 것을 정말 해결하고 싶습니다. 21 00:00:52,450 --> 00:00:56,940 >> 그래서 오늘의 의제는 모든 데이터 구조에 대한. 22 00:00:56,940 --> 00:01:01,520 이들 중 일부는 그냥있을거야 이러한 익숙하게 얻을 수 있습니다. 23 00:01:01,520 --> 00:01:04,870 당신은 지금까지 구현하지 않을 수 있습니다 이 클래스의 그들. 24 00:01:04,870 --> 00:01:08,690 당신 것입니다 그들 중 일부, 당신의 철자의 PSET에있다. 25 00:01:08,690 --> 00:01:11,380 >> 당신은 선택을해야합니다 해시 테이블과 시도 사이. 26 00:01:11,380 --> 00:01:13,680 그래서 우리는 확실히 그 이상 갈 것. 27 00:01:13,680 --> 00:01:18,690 그것은 종류의 확실히 더 될 것 높은 수준의 섹션의 오늘, 그러나, 28 00:01:18,690 --> 00:01:22,630 때문에 거기에 그들 중 많은, 그리고 경우 우리는 구현 세부 사항에 갔다 29 00:01:22,630 --> 00:01:26,490 이 모든, 우리는 않을 것 심지어 연결리스트를 통해 얻을 30 00:01:26,490 --> 00:01:28,520 아마 해시 테이블의 약간. 31 00:01:28,520 --> 00:01:31,200 >> 그래서 나와 함께 곰. 32 00:01:31,200 --> 00:01:33,530 우리는 일을하지 않을거야 많은이 시간을 코딩. 33 00:01:33,530 --> 00:01:36,870 당신은 그것에 대해 질문이있는 경우 또는 당신은 그것을 구현보고 싶어 34 00:01:36,870 --> 00:01:39,260 나 자신을 위해 그것을 시도, 나는 확실히 추천 35 00:01:39,260 --> 00:01:44,250 , study.cs50.net하려고하는 이 모든 예제를 가지고있다. 36 00:01:44,250 --> 00:01:46,400 내 파워 포인트를 할 것이다 메모와 함께 그 우리 37 00:01:46,400 --> 00:01:50,860 일부 프로그래밍뿐만 아니라 사용하는 경향 운동, 특히 것들에 대한 38 00:01:50,860 --> 00:01:55,250 연결리스트와 이진 등 나무 스택과 큐. 39 00:01:55,250 --> 00:01:59,590 그래서 좀 더 높은 수준의, 어떤 너희들을위한 좋은 수 있습니다. 40 00:01:59,590 --> 00:02:01,320 >> 그와 그래서, 우리는 시작합니다. 41 00:02:01,320 --> 00:02:03,060 또한, 그럼요 퀴즈. 42 00:02:03,060 --> 00:02:06,550 나는에있는 당신의 대부분의 생각 내 부분은, 당신의 퀴즈가 43 00:02:06,550 --> 00:02:12,060 하지만 사람 또는 어떤 이유에서 오는 당신 하지, 그들은 바로 여기 앞에있어. 44 00:02:12,060 --> 00:02:12,740 >> 그래서 연결리스트. 45 00:02:12,740 --> 00:02:15,650 이동의 나는이 종류를 알고 퀴즈 전에 백업합니다. 46 00:02:15,650 --> 00:02:17,940 그 전에 주이었다 우리는 이것에 대해 배웠다. 47 00:02:17,940 --> 00:02:21,040 그러나이 경우에, 우리는 정액 깊이에서 조금 더 이동합니다. 48 00:02:21,040 --> 00:02:25,900 >> 그럼 왜 우리는을 선택할 수 있습니다 배열을 통해 목록을 연결? 49 00:02:25,900 --> 00:02:27,130 그들은 무엇 구별? 50 00:02:27,130 --> 00:02:27,630 네? 51 00:02:27,630 --> 00:02:30,464 >> 청중 : 당신은 확장 할 수 있습니다 링크 배열의 크기가 고정 대 나열합니다. 52 00:02:30,464 --> 00:02:31,171 스피커 1 : 맞아요. 53 00:02:31,171 --> 00:02:33,970 배열은 반면 크기를 고정하고있다 연결리스트는 가변 크기를 갖는다. 54 00:02:33,970 --> 00:02:36,970 우리가 모르는 경우 어떻게 많은 우리가 저장하고자, 55 00:02:36,970 --> 00:02:39,880 연결리스트는 우리에게 훌륭한을 제공합니다 방법은해야 할 일이 우리가 할 수 있기 때문에 56 00:02:39,880 --> 00:02:43,730 다른 노드에 추가에 추가 다른 노드와 다른 노드에 추가합니다. 57 00:02:43,730 --> 00:02:45,750 그러나이 트레이드 - 오프 (trade-off) 될 수 있을까요? 58 00:02:45,750 --> 00:02:49,521 사람은 트레이드 오프를 기억 하는가 배열과 연결리스트 사이? 59 00:02:49,521 --> 00:02:50,020 음 .....? 60 00:02:50,020 --> 00:02:51,460 >> 청중 : 당신은에있다 모든 방법을 통해 이동 61 00:02:51,460 --> 00:02:53,738 링크 된 목록을 목록의 요소를 찾을 수 있습니다. 62 00:02:53,738 --> 00:02:55,570 배열, 당신은 할 수 단지 요소를 찾을 수 있습니다. 63 00:02:55,570 --> 00:02:56,278 >> 스피커 1 : 맞아요. 64 00:02:56,278 --> 00:02:57,120 그래서 arrays--와 65 00:02:57,120 --> 00:02:58,500 >> 청중 : [들리지]. 66 00:02:58,500 --> 00:03:01,090 >> 스피커 1 : 배열, 우리가 어떤 것은 랜덤 액세스라고합니다. 67 00:03:01,090 --> 00:03:04,820 우리가 원하는 경우에 무슨 일이 있음을 의미 목록의 사상 다섯 번째 포인트 68 00:03:04,820 --> 00:03:07,230 또는 다섯 번째 지점 우리 배열, 우리는 단지 그것을 잡아 수 있습니다. 69 00:03:07,230 --> 00:03:10,440 이 연결리스트가 있다면, 우리가 오른쪽을 반복하는? 70 00:03:10,440 --> 00:03:14,020 그래서 요소에 액세스 배열은, 일정 시간 71 00:03:14,020 --> 00:03:19,530 이 것 링크 된 목록 반면, 가장 가능성이 있기 때문에 어쩌면 선형 시간이 72 00:03:19,530 --> 00:03:21,370 우리의 요소는 마지막에 모든 방법입니다. 73 00:03:21,370 --> 00:03:23,446 우리는 모두를 검색 할 수 있습니다. 74 00:03:23,446 --> 00:03:25,320 이러한 모든 데이터 그래서 우리가 가고있는 구조 75 00:03:25,320 --> 00:03:29,330 에 좀 더 많은 시간을 소비하기 위해, 흑자 및 네거티브은 무엇인가. 76 00:03:29,330 --> 00:03:31,480 우리는 할 수 있습니다 때 다른 통해 하나를 사용? 77 00:03:31,480 --> 00:03:34,970 그리고 그 가지의 더 큰 일이 빼앗아. 78 00:03:34,970 --> 00:03:40,140 >> 그래서 우리는 여기에있다 노드의 정의. 79 00:03:40,140 --> 00:03:43,040 그것은 하나의 요소처럼 우리의 연결리스트, 오른쪽? 80 00:03:43,040 --> 00:03:46,180 그래서 우리는 모두 잘 알고 우리의 형식 정의 구조체와, 81 00:03:46,180 --> 00:03:47,980 우리는 지난 번 리뷰에 갔다한다. 82 00:03:47,980 --> 00:03:53,180 그냥 만들면 기본적했다 우리가 사용할 수있는 다른 데이터 유형입니다. 83 00:03:53,180 --> 00:03:57,930 >> 그리고이 경우에는, 어떤 노드의 즉, 약간의 정수를 개최한다. 84 00:03:57,930 --> 00:04:00,210 그리고 두 번째 부분은 여기에 무엇입니까? 85 00:04:00,210 --> 00:04:03,192 86 00:04:03,192 --> 00:04:05,677 누구? 87 00:04:05,677 --> 00:04:06,680 >> 청중 : [들리지]. 88 00:04:06,680 --> 00:04:07,020 >> 스피커 1 : 그래. 89 00:04:07,020 --> 00:04:08,400 그것은 다음 노드에 대한 포인터이다. 90 00:04:08,400 --> 00:04:12,610 그래서이 사실은 여기에 있어야한다. 91 00:04:12,610 --> 00:04:18,790 이 유형의 포인터 다음 일에 노드입니다. 92 00:04:18,790 --> 00:04:22,410 그리고 그것은 무엇을의 그들 우리의 노드를 포함한다. 93 00:04:22,410 --> 00:04:24,060 쿨. 94 00:04:24,060 --> 00:04:29,390 >> 검색 좋아, 그래서, 우리가 있었던 것처럼 당신이 있다면 그냥 손 전에 말 95 00:04:29,390 --> 00:04:31,840 를 검색 할 것, 실제로 반복해야 96 00:04:31,840 --> 00:04:33,660 링크 된 목록을. 97 00:04:33,660 --> 00:04:38,530 우리는 숫자를 찾고 있다면 그래서 9, 우리는 우리의 머리에 시작할 것 98 00:04:38,530 --> 00:04:41,520 그리고 그 시작 부분에 우리 포인트 우리의 연결리스트의 오른쪽? 99 00:04:41,520 --> 00:04:44,600 그리고 우리는 OK,이 작업을 수행, 말 노드 번호 (9)를 포함? 100 00:04:44,600 --> 00:04:45,690 아니? 101 00:04:45,690 --> 00:04:47,500 >> 좋아, 다음 단계로 이동합니다. 102 00:04:47,500 --> 00:04:48,312 그것을 따르십시오. 103 00:04:48,312 --> 00:04:49,520 그것은 수 (9)이 포함되어 있습니까? 104 00:04:49,520 --> 00:04:50,570 아니오. 105 00:04:50,570 --> 00:04:51,550 다음 중 하나를 수행하십시오. 106 00:04:51,550 --> 00:04:55,490 >> 그래서 우리는 실제로 반복해야 우리의 링크 목록을. 107 00:04:55,490 --> 00:05:00,070 우리는 단지 9 곳으로 바로 이동 할 수 없습니다. 108 00:05:00,070 --> 00:05:05,860 그리고 너희들은 실제로 원하는 경우 몇 가지 의사 코드까지를 참조하십시오. 109 00:05:05,860 --> 00:05:10,420 우리는 여기에 몇 가지 검색 기능을 즉,에 걸릴 무엇을 받한다? 110 00:05:10,420 --> 00:05:13,110 111 00:05:13,110 --> 00:05:14,320 당신은 어떻게 생각하세요? 112 00:05:14,320 --> 00:05:15,960 그래서 쉬운. 113 00:05:15,960 --> 00:05:17,784 이 무엇입니까? 114 00:05:17,784 --> 00:05:18,700 청중 : [들리지]. 115 00:05:18,700 --> 00:05:20,366 스피커 1 : 우리가 찾고있는 수. 116 00:05:20,366 --> 00:05:20,980 오른쪽? 117 00:05:20,980 --> 00:05:22,875 어떤이는에 해당하는 것? 118 00:05:22,875 --> 00:05:25,020 그것은 포인터입니까? 119 00:05:25,020 --> 00:05:26,000 >> 청중 : 노드. 120 00:05:26,000 --> 00:05:28,980 >> 스피커 1 : 목록에 노드 우리는 오른쪽에서 찾고 있다는 것을? 121 00:05:28,980 --> 00:05:33,700 그래서 우리는 일부 노드가 여기에 포인터입니다 있습니다. 122 00:05:33,700 --> 00:05:37,240 이 문서의 정보는 다음의 제품에 무슨 점입니다 실제로 우리의 목록을 반복. 123 00:05:37,240 --> 00:05:39,630 우리는 목록에이 동일하게 설정 그건 그냥 왜냐하면 124 00:05:39,630 --> 00:05:44,380 에이 동일한 설정 우리의 연결리스트의 시작. 125 00:05:44,380 --> 00:05:50,660 >> 그리고 그것은 NULL이있는 동안, 동안 우리는 여전히 우리의 목록에있는 물건을 가지고 126 00:05:50,660 --> 00:05:55,580 해당 노드가 있는지 확인 우리가 찾고있는 번호입니다. 127 00:05:55,580 --> 00:05:57,740 true를 돌려줍니다. 128 00:05:57,740 --> 00:06:01,070 그렇지 않으면, 오른쪽을 업데이트? 129 00:06:01,070 --> 00:06:04,870 >> null의 경우, 우리는 우리의 종료 While 루프와 false를 반환 130 00:06:04,870 --> 00:06:08,340 그 의미하기 때문에 우리는 그것을 발견하지 않았습니다. 131 00:06:08,340 --> 00:06:11,048 모두가 그 작동 방법을 얻을 수 있습니까? 132 00:06:11,048 --> 00:06:11,548 확인을 클릭합니다. 133 00:06:11,548 --> 00:06:14,940 134 00:06:14,940 --> 00:06:20,260 >> 당신은 삽입에 따라서 세 가지 방법이있다. 135 00:06:20,260 --> 00:06:25,250 당신은 당신이 추가 할 수 있습니다, 앞에 추가 할 수 있습니다 모듬으로 당신은 삽입 할 수 있습니다. 136 00:06:25,250 --> 00:06:28,215 이 경우, 우리는 야 앞에 추가 할 것. 137 00:06:28,215 --> 00:06:33,380 사람이 어떻게 사람들을 알고 있나요 삼가지 경우는 다를 수 있습니다? 138 00:06:33,380 --> 00:06:36,920 >> 그래서 앞에 추가하면 넣어 것을 의미한다 그 목록의 앞에. 139 00:06:36,920 --> 00:06:39,770 그래서 의미에 상관없이 그 노드는 상관없이 어떤 140 00:06:39,770 --> 00:06:43,160 값이 무엇인지, 당신은거야 OK, 바로 앞에 여기를 넣어? 141 00:06:43,160 --> 00:06:45,160 그것은 첫 번째가 될 것 목록의 요소입니다. 142 00:06:45,160 --> 00:06:49,510 >> 당신이 그것을 추가하면 돼가 목록의 맨 위로 이동합니다. 143 00:06:49,510 --> 00:06:54,010 그리고 모듬 당신이있어 의미에 삽입 장소에 실제로 넣어 것 144 00:06:54,010 --> 00:06:57,700 이 유지 어디에 연결리스트 정렬. 145 00:06:57,700 --> 00:07:00,810 다시 말하지만, 당신은 어떻게 사용 그 때 사용 146 00:07:00,810 --> 00:07:02,530 그들은 경우에 따라 달라질 수 있습니다. 147 00:07:02,530 --> 00:07:05,834 148 00:07:05,834 --> 00:07:07,750 그것은 필요하지 않는 경우 정렬, 앞에 붙는 경향이있다 149 00:07:07,750 --> 00:07:10,460 무슨 대부분의 사람들이어야합니다 당신이하지 않기 때문에 사용 150 00:07:10,460 --> 00:07:15,680 전체 목록을 이동해야 오른쪽을에 추가 할 수있는 끝을 찾는 방법은? 151 00:07:15,680 --> 00:07:17,720 당신은 바로 그것을 찌를 수있다. 152 00:07:17,720 --> 00:07:21,930 >> 그래서 우리는 통과합니다 삽입 한 지금. 153 00:07:21,930 --> 00:07:26,360 내가 갈거야 그래서 한 가지 높은이 PSET에 추천 154 00:07:26,360 --> 00:07:29,820 언제나처럼, 물건을 그릴 것입니다. 155 00:07:29,820 --> 00:07:35,130 당신이 업데이트하는 것이 매우 중요합니다 올바른 순서대로 포인터 156 00:07:35,130 --> 00:07:38,620 당신이 그들을 업데이트 할 경우 때문에 약간 순서가, 157 00:07:38,620 --> 00:07:42,210 당신은 끝날거야 목록의 일부를 잃는. 158 00:07:42,210 --> 00:07:49,680 >> 그래서 예를 들어,이 경우, 우리는 야 1 단지 지점에 머리를 말하고. 159 00:07:49,680 --> 00:07:56,070 우리는 그렇게한다면 이 일을 저장하지 않고, 160 00:07:56,070 --> 00:07:58,570 우리는 아무 생각이 무엇인지 1 이제 가리켜 야 161 00:07:58,570 --> 00:08:02,490 우리는 분실했기 때문에 무엇 머리는 지적했다. 162 00:08:02,490 --> 00:08:05,530 그래서 한 가지 기억해야 할 때 앞에 추가하고있어 163 00:08:05,530 --> 00:08:09,630 무엇을 저장하는 것입니다 처음에 머리 포인트, 164 00:08:09,630 --> 00:08:15,210 다음를 재 할당 한 다음 업데이트 어떤 새로운 노드를 표시해야한다. 165 00:08:15,210 --> 00:08:20,870 166 00:08:20,870 --> 00:08:22,560 그 경우는 그것을 하나의 방법이다. 167 00:08:22,560 --> 00:08:25,440 >> 우리는이 방법을 수행했다 그래서 만약 여기서 우리는, 머리를 재 할당 168 00:08:25,440 --> 00:08:30,320 우리는 기본적으로 우리가 손실 전체 목록, 오른쪽? 169 00:08:30,320 --> 00:08:38,000 이를 수행하는 한가지 방법은 한 점에있을 것이다 다음, 다음 (1) 머리 점을 가지고있다. 170 00:08:38,000 --> 00:08:42,650 또는 당신은 같은 종류의 할 수 내가 얘기 임시 저장. 171 00:08:42,650 --> 00:08:45,670 >> 하지만 당신의 재 할당 올바른 순서로 포인터 172 00:08:45,670 --> 00:08:48,750 매우, 매우 될 것입니다 이 PSET 중요합니다. 173 00:08:48,750 --> 00:08:53,140 그렇지 않으면, 당신은 해시를 할 겁니다 테이블 또는 단지 될 것 시도 174 00:08:53,140 --> 00:08:56,014 단어의 일부만 당신 혹시 교수님은 음 ..... 그런 다음 원하는? 175 00:08:56,014 --> 00:08:58,930 청중 : 임시 무엇 스토리지 것은 당신에 대해 얘기했다? 176 00:08:58,930 --> 00:09:00,305 스피커 1 : 임시 저장. 177 00:09:00,305 --> 00:09:02,760 그래서 기본적으로 다른 당신이 할 수있는 방법 178 00:09:02,760 --> 00:09:07,650 처럼, 뭔가의 머리를 저장한다 그것을 임시 변수를 저장합니다. 179 00:09:07,650 --> 00:09:11,250 1로 지정하고 다음 가리 키도록 한 업데이트 180 00:09:11,250 --> 00:09:13,830 어떤 머리가 가리키는 데 사용. 181 00:09:13,830 --> 00:09:16,920 이 방법은 명백하게 더 우아한 당신 때문에 182 00:09:16,920 --> 00:09:20,770 임시 값을 필요로하지 않지만 단지 그것을 할 수있는 또 다른 방법을 제공. 183 00:09:20,770 --> 00:09:23,999 184 00:09:23,999 --> 00:09:25,790 그리고 우리가 실제로해야합니까 이에 대한 몇 가지 코드. 185 00:09:25,790 --> 00:09:28,080 연결리스트에 대한 그래서 우리 실제로 몇 가지 코드가있다. 186 00:09:28,080 --> 00:09:31,930 그래서이 앞에 추가되어, 여기에 삽입합니다. 187 00:09:31,930 --> 00:09:34,290 그래서이 머리를 들어갑니다. 188 00:09:34,290 --> 00:09:38,820 >> 그래서 일단, 당신은 필요 물론, 새로운 노드를 작성, 189 00:09:38,820 --> 00:09:40,790 NULL을 확인합니다. 190 00:09:40,790 --> 00:09:43,250 항상 좋은. 191 00:09:43,250 --> 00:09:47,840 그리고 당신은 값을 할당해야합니다. 192 00:09:47,840 --> 00:09:51,260 때마다 당신은 당신을 새로운 노드를 생성 그것은 다음을 가리키는 무슨 모른다, 193 00:09:51,260 --> 00:09:54,560 그래서 당신은 NULL로 초기화 할. 194 00:09:54,560 --> 00:09:58,760 그것은 무언가를 가리키는 끝날 경우 다른, 그것은 재 할당 및 괜찮아요됩니다. 195 00:09:58,760 --> 00:10:00,740 그 첫 번째 일이있는 경우 목록에서, 그것은 필요 196 00:10:00,740 --> 00:10:04,270 때문에 NULL을 가리 키도록 즉,리스트의 마지막이다. 197 00:10:04,270 --> 00:10:12,410 >> 그럼 삽입, 우리는 우리가 여기 참조 우리의 노드의 다음 값을 할당하는 198 00:10:12,410 --> 00:10:17,380 머리는 무엇이든 될, 이는 우리가 여기에 있었다 것입니다. 199 00:10:17,380 --> 00:10:19,930 즉 우리가 무슨 짓을했는지. 200 00:10:19,930 --> 00:10:25,820 그리고 우리는 지점에 머리를 할당하고 우리의 새로운 노드에 대한 기억 때문에, 201 00:10:25,820 --> 00:10:31,090 새로운는 노드에 몇 가지 포인터입니다 그리고 정확히 머리가 무엇인지입니다. 202 00:10:31,090 --> 00:10:34,370 그게 바로 우리가 왜이다 이 화살표 접근이있다. 203 00:10:34,370 --> 00:10:37,030 204 00:10:37,030 --> 00:10:37,530 쿨? 205 00:10:37,530 --> 00:10:38,130 음 .....? 206 00:10:38,130 --> 00:10:41,100 >> 청중 : 우리가해야합니까 첫 번째 NULL로 새로운 다음을 초기화, 207 00:10:41,100 --> 00:10:44,240 또는 우리는 머리를 초기화 할 수 있습니다? 208 00:10:44,240 --> 00:10:48,210 >> 스피커 1 : 다음 새로운 시작 NULL이어야합니다 209 00:10:48,210 --> 00:10:53,760 당신이 모르는 때문에 그것은 어디있을거야. 210 00:10:53,760 --> 00:10:56,100 또한,이 종류의 것입니다 단지 패러다임을 좋아한다. 211 00:10:56,100 --> 00:10:59,900 당신은 NULL 동일 단지 수 있도록 설정 반드시 모든 기지가 다루어진다는 것을 212 00:10:59,900 --> 00:11:04,070 해당하므로, 어떠한 재 할당을하기 전에 당신은 항상 것을 보장하고 213 00:11:04,070 --> 00:11:08,880 특정 값을 가리키는 수 쓰레기 값 같은 대. 214 00:11:08,880 --> 00:11:12,210 그래, 우리가 할당 때문에 자동으로 다음 새, 215 00:11:12,210 --> 00:11:15,420 하지만 그것은 단지 같은 더 많은 것은 인 좋은 습관을 초기화 216 00:11:15,420 --> 00:11:19,270 그 방법으로 다음 재 할당. 217 00:11:19,270 --> 00:11:23,420 >> 좋아, 그럼 이중으로 지금 연결리스트. 218 00:11:23,420 --> 00:11:24,601 우리는 무엇을 생각 하는가? 219 00:11:24,601 --> 00:11:26,350 무엇과 다르다 이중 연결리스트? 220 00:11:26,350 --> 00:11:30,750 221 00:11:30,750 --> 00:11:34,300 >> 그래서 우리의 연결리스트에서, 우리는 할 수 하나 지 방향으로 이동? 222 00:11:34,300 --> 00:11:35,270 우리는 다음이있다. 223 00:11:35,270 --> 00:11:36,760 우리는 앞으로 갈 수 있습니다. 224 00:11:36,760 --> 00:11:40,300 >> 이중 연결리스트, 우리는 또한 뒤로 이동할 수 있습니다. 225 00:11:40,300 --> 00:11:44,810 그래서 우리는뿐만 아니라이 우리가 저장할 수, 226 00:11:44,810 --> 00:11:50,110 그것은 다음을 가리키는 곳에 우리는이 우리는 어디에서 왔는지. 227 00:11:50,110 --> 00:11:52,865 그래서이 가능 더 좋은 통과. 228 00:11:52,865 --> 00:11:56,620 229 00:11:56,620 --> 00:12:01,240 >> 그래서 이중 연결 노드, 매우 유사, 맞죠? 230 00:12:01,240 --> 00:12:05,000 유일한 차이는 우리는 지금 다음 및 이전을해야합니다. 231 00:12:05,000 --> 00:12:06,235 그것은 유일한 차이점이다. 232 00:12:06,235 --> 00:12:09,570 233 00:12:09,570 --> 00:12:14,790 >> 우리가 있었던 경우에 따라서 앞에 추가 또는 append-- 우리합니다 이곳에이에 대한 코드를 가지고 있지 않습니다 234 00:12:14,790 --> 00:12:17,830 하지만 당신이 시도했다 경우 , 중요한 것은 삽입 235 00:12:17,830 --> 00:12:19,980 당신이 할 필요가있다 확실히 당신은 할당하고 236 00:12:19,980 --> 00:12:23,360 모두 이전하고 올바르게 다음 포인터. 237 00:12:23,360 --> 00:12:29,010 이 경우, 당신은 것 만 다음 초기화하지, 238 00:12:29,010 --> 00:12:31,820 당신은 이전 초기화합니다. 239 00:12:31,820 --> 00:12:36,960 우리는리스트의 선두에 있다면, 우리 머리와 동일한 새로운 만들 것뿐만 아니라, 240 00:12:36,960 --> 00:12:41,750 하지만 우리의 새로운 이전은해야 오른쪽 머리를 가리? 241 00:12:41,750 --> 00:12:43,380 >> 즉, 유일한 차이점이다. 242 00:12:43,380 --> 00:12:47,200 그리고 당신은 더 많은 연습을 원하는 경우 삽입과 연결리스트, 이러한, 243 00:12:47,200 --> 00:12:49,900 인서트, 삭제와 모듬 목록으로, 244 00:12:49,900 --> 00:12:52,670 study.cs50.net을 확인하시기 바랍니다. 245 00:12:52,670 --> 00:12:54,870 큰 운동의 무리가있다. 246 00:12:54,870 --> 00:12:55,870 내가보기 엔 그들을 권장합니다. 247 00:12:55,870 --> 00:12:59,210 나는 우리가 그들을 통해 갈 시간이 있었으면 좋겠다 그러나 데이터 구조들이 많이있어 248 00:12:59,210 --> 00:13:01,530 를 통해 얻을 수 있습니다. 249 00:13:01,530 --> 00:13:02,650 >> OK, 해시 테이블 그렇게. 250 00:13:02,650 --> 00:13:07,070 이것은 아마도 가장입니다 당신의 pset에 유용 비트 251 00:13:07,070 --> 00:13:11,090 여기에 당신이있을거야 때문에 이들 중 하나, 또는 시도를 구현. 252 00:13:11,090 --> 00:13:12,200 정말 해시 테이블을 좋아한다. 253 00:13:12,200 --> 00:13:13,110 그들은 꽤 멋지다. 254 00:13:13,110 --> 00:13:17,080 >> 그래서 기본적으로 무엇을 발생은 해시 테이블 255 00:13:17,080 --> 00:13:22,050 우리가 정말 빠른해야 할 때입니다 삽입, 삭제, 조회. 256 00:13:22,050 --> 00:13:25,010 사람들은 우리가하고있는 일입니다 해시 테이블에 우선 순위. 257 00:13:25,010 --> 00:13:29,500 그들은 꽤 큰 얻을 수 있습니다 하지만 우리는 시도로 볼 수 있습니다로, 258 00:13:29,500 --> 00:13:33,040 훨씬 더 큰 일이있다. 259 00:13:33,040 --> 00:13:38,330 >> 그러나 기본적으로, 모든 해시 테이블은 해시 함수 260 00:13:38,330 --> 00:13:47,215 즉, 각을 넣어하는 버킷을 알려줍니다 데이터의, 당신의 각 요소. 261 00:13:47,215 --> 00:13:51,140 간단한 방법은 해시 테이블 생각 사물의 단지 버킷 점이다, 262 00:13:51,140 --> 00:13:51,770 맞죠? 263 00:13:51,770 --> 00:13:59,720 당신은에 의해 일을 정렬되도록 할 때 그들의 이름 첫 글자 등, 264 00:13:59,720 --> 00:14:01,820 그 종류의 해시 테이블처럼. 265 00:14:01,820 --> 00:14:06,180 >> 나는이 그룹에 있다면 그래서 너희들은 이름이 시작 누구든 그룹으로 266 00:14:06,180 --> 00:14:11,670 여기에, 또는 생일은 누구든 , 1 월, 2 월, 3 월에 267 00:14:11,670 --> 00:14:15,220 무엇이든, 그것은 효율적입니다 해시 테이블을 생성. 268 00:14:15,220 --> 00:14:18,120 그냥 버킷을 만드는 것 그 당신은에 당신의 요소를 정렬 269 00:14:18,120 --> 00:14:19,520 당신이 그들을 쉽게 찾을 수 있도록. 270 00:14:19,520 --> 00:14:22,300 내가 필요로하는이 방법 그래서 둘 중 하나를 찾으려면, 271 00:14:22,300 --> 00:14:24,680 내가 검색하지 않아도 당신의 이름의 각각을 통해. 272 00:14:24,680 --> 00:14:29,490 나는 오, 같이 할 수있다, 나는 알고 다니엘의 생일은 말야 ...이다 273 00:14:29,490 --> 00:14:30,240 청중 : --April. 274 00:14:30,240 --> 00:14:30,948 스피커 1 : 2011 년 4 월. 275 00:14:30,948 --> 00:14:33,120 그래서 난 내 4 월에보고 양동이, 및 운, 276 00:14:33,120 --> 00:14:38,270 그녀가 하나가 될 것입니다 및 내 시간은, 그런 의미에서 일정이었다 277 00:14:38,270 --> 00:14:41,230 내가보고있는 경우 반면, 사람들의 전체 무리를 통해, 278 00:14:41,230 --> 00:14:43,090 그것은 훨씬 더 오래 걸릴 거예요. 279 00:14:43,090 --> 00:14:45,830 그래서 해시 테이블 정말 그냥 버킷입니다. 280 00:14:45,830 --> 00:14:48,630 쉬운 방법은 그들을 생각합니다. 281 00:14:48,630 --> 00:14:52,930 >> 그래서 매우 중요한 일에 대한 해시 테이블은 해시 함수이다. 282 00:14:52,930 --> 00:14:58,140 그래서 일이 나는 것처럼 이야기 당신의 이름의 첫 번째 편지 283 00:14:58,140 --> 00:15:01,450 또는 당신의 생일 달, 이러한 아이디어가 284 00:15:01,450 --> 00:15:03,070 정말로 해시 함수에 연관. 285 00:15:03,070 --> 00:15:08,900 그것은 결정의 단지 방법있는 당신이 확인하고 요소로 전환 식당? 286 00:15:08,900 --> 00:15:14,850 그래서이 PSET를 들어, 당신은 찾아 볼 수 있습니다 원하는 해시 함수 꽤 많이. 287 00:15:14,850 --> 00:15:16,030 >> 자신의 할 필요가 없습니다. 288 00:15:16,030 --> 00:15:21,140 정말 괜찮은 사람은 밖으로있다 미친 수학의 모든 종류가있다 할 수있다. 289 00:15:21,140 --> 00:15:25,170 그리고 당신은 당신을하려는 경우 슈퍼 빠른 맞춤법 검사기, 290 00:15:25,170 --> 00:15:27,620 나는 확실히 것 그 중 하나에 보인다. 291 00:15:27,620 --> 00:15:32,390 >> 그러나 또한있다 계산 같은 간단한 것들, 292 00:15:32,390 --> 00:15:39,010 단어의 합과 같은 각 문자는 번호가 있습니다. 293 00:15:39,010 --> 00:15:39,940 합을 계산한다. 294 00:15:39,940 --> 00:15:42,230 즉, 버킷을 결정합니다. 295 00:15:42,230 --> 00:15:45,430 또한 쉽게 것들 갖도록 단지의 여기의 모든처럼, 296 00:15:45,430 --> 00:15:47,050 B 모두 여기에 있습니다. 297 00:15:47,050 --> 00:15:48,920 그 중 어느 하나. 298 00:15:48,920 --> 00:15:55,770 >> 기본적으로, 당신을 알려줍니다 배열 인덱스로 가야 당신의 요소입니다. 299 00:15:55,770 --> 00:15:58,690 그냥 bucket-- 결정 모든 해시 함수는이다. 300 00:15:58,690 --> 00:16:04,180 그래서 여기에 우리는 예를 문자열의 첫 글자 만 써도 301 00:16:04,180 --> 00:16:05,900 제가 단지에 대해 얘기했다. 302 00:16:05,900 --> 00:16:11,900 >> 그래서 당신은 단지의 일부 해시가 당신의 문자열 마이너스의 첫 글자, 303 00:16:11,900 --> 00:16:16,090 몇 가지를 줄 것이다 0에서 25 사이의 숫자입니다. 304 00:16:16,090 --> 00:16:20,790 하고 싶은 것은 이 나타내는 확인 305 00:16:20,790 --> 00:16:24,110 당신의 해시의 크기 table-- 얼마나 많은 버킷있다. 306 00:16:24,110 --> 00:16:25,860 이들의 많은으로 해시 함수들은 야 307 00:16:25,860 --> 00:16:31,630 가는 그 수도 값을 반환한다 지금까지 버킷 수 이상이어야 308 00:16:31,630 --> 00:16:33,610 당신은 실제로 가지고 하여 해시 테이블, 309 00:16:33,610 --> 00:16:37,240 그래서 당신은 할 필요가 확인 및 사람들에 의해 모드 (mod). 310 00:16:37,240 --> 00:16:42,190 그렇지 않으면, 말하는 것, 아, 버킷 5000에 있어야합니다 311 00:16:42,190 --> 00:16:46,040 하지만 당신은 30가 당신의 해시 테이블의 버킷. 312 00:16:46,040 --> 00:16:49,360 그리고 물론, 우리 모두가 그 알고 어떤 미친 오류가 발생할 것이다. 313 00:16:49,360 --> 00:16:52,870 그럼으로이 mod 확인 당신의 해시 테이블의 크기입니다. 314 00:16:52,870 --> 00:16:58,430 315 00:16:58,430 --> 00:16:58,930 쿨. 316 00:16:58,930 --> 00:17:00,506 충돌 그래서. 317 00:17:00,506 --> 00:17:02,620 모두가 지금까지 좋은가요? 318 00:17:02,620 --> 00:17:03,120 음 .....? 319 00:17:03,120 --> 00:17:05,900 >> 청중 : 왜 것 이러한 대규모의 값을 반환? 320 00:17:05,900 --> 00:17:09,210 >> 스피커 1 : 알고리즘에 따라 하여 해시 함수 사용. 321 00:17:09,210 --> 00:17:12,270 그들 중 일부는 할 것 미친 곱셈. 322 00:17:12,270 --> 00:17:16,270 그리고 방법에 대해 전부 균일 한 분포, 323 00:17:16,270 --> 00:17:18,490 그래서 그들은 정말 어떤 작업을 수행 때로는 미친 것들. 324 00:17:18,490 --> 00:17:20,960 그게 다야. 325 00:17:20,960 --> 00:17:22,140 다른 건? 326 00:17:22,140 --> 00:17:22,829 확인을 클릭합니다. 327 00:17:22,829 --> 00:17:24,480 >> 충돌 그래서. 328 00:17:24,480 --> 00:17:29,270 기본적으로, 앞서 말했듯이, 최상의 시나리오에서, 329 00:17:29,270 --> 00:17:32,040 내가 들여다 어떤 버킷입니다 한 가지를해야 할 것, 330 00:17:32,040 --> 00:17:34,160 그래서 오른쪽, 전혀 볼 필요가 없습니다? 331 00:17:34,160 --> 00:17:37,040 나는 하나가 거기 알고 또는이다 아니, 그건 우리가 정말 원하는거야. 332 00:17:37,040 --> 00:17:43,960 하지만 수만 수천이있는 경우 데이터 포인트와 그 수보다 작 333 00:17:43,960 --> 00:17:48,700 양동이, 우리는 할 겁니다 충돌 경우 결국 무엇인가 334 00:17:48,700 --> 00:17:54,210 에서 생을 마감해야 할 것입니다 이미 요소가 버킷. 335 00:17:54,210 --> 00:17:57,390 >> 그래서 질문은, 무엇을 우리는 그 경우에해야합니까? 336 00:17:57,390 --> 00:17:58,480 우리는 무엇을해야합니까? 337 00:17:58,480 --> 00:17:59,300 우리는 이미 뭔가가? 338 00:17:59,300 --> 00:18:00,060 우리는 단지 그것을 밖으로 던져합니까? 339 00:18:00,060 --> 00:18:00,700 >> 아니오. 340 00:18:00,700 --> 00:18:01,980 우리는 그들 모두를 유지해야합니다. 341 00:18:01,980 --> 00:18:06,400 그래서 방법이 우리 일반적으로 그 무엇을하면된다? 342 00:18:06,400 --> 00:18:08,400 데이터 구조는 무엇인가 우리는에 대해 이야기? 343 00:18:08,400 --> 00:18:09,316 청중 : 링크 된 목록입니다. 344 00:18:09,316 --> 00:18:10,500 스피커 1 : 연결리스트. 345 00:18:10,500 --> 00:18:16,640 그래서 지금, 대신 이들 각각의 버킷은 단지 하나의 요소를 가진 346 00:18:16,640 --> 00:18:24,020 그것의 링크 된 목록을 포함 것 그것에 해시 하였다 소자. 347 00:18:24,020 --> 00:18:27,588 OK, 모든 종류의 아이디어를 얻을 수 있습니까? 348 00:18:27,588 --> 00:18:30,546 우리는 배열을 가질 수 없기 때문에 우리는 얼마나 많은 것들을 알 수 없기 때문에 349 00:18:30,546 --> 00:18:31,730 거기에있을 것입니다. 350 00:18:31,730 --> 00:18:36,540 연결리스트는 우리를 수 단지 정확한 숫자를 가지고 그 351 00:18:36,540 --> 00:18:38,465 바로, 그 양동이에 해시? 352 00:18:38,465 --> 00:18:42,260 353 00:18:42,260 --> 00:18:50,500 >> 프로빙은 그래서 선형 기본적으로이 idea-- 354 00:18:50,500 --> 00:18:52,300 이 충돌에 대처하는 한 방법입니다. 355 00:18:52,300 --> 00:18:58,010 당신이 할 수있는 것은이에, 경우입니다 경우는, 베리 1로 해쉬 된 356 00:18:58,010 --> 00:19:01,130 우리는 이미 무언가가, 방금 357 00:19:01,130 --> 00:19:04,840 될 때까지 계속 당신은 빈 슬롯을 찾을 수 있습니다. 358 00:19:04,840 --> 00:19:06,370 즉, 처리 할 수​​있는 한 가지 방법입니다. 359 00:19:06,370 --> 00:19:09,020 처리 할 수​​있는 다른 방법 그것은 함께 우리 단지 360 00:19:09,020 --> 00:19:12,280 링크를 그 이름은 목록 체인이라고합니다. 361 00:19:12,280 --> 00:19:20,510 >> 그래서이 아이디어는 경우 작동 당신이 생각하는 당신의 해시 테이블 362 00:19:20,510 --> 00:19:24,150 보다 훨씬 크다 데이터 설정하거나 경우 363 00:19:24,150 --> 00:19:28,870 시도하고 체인 최소화하려면 그것은 절대적으로 필요한 때까지. 364 00:19:28,870 --> 00:19:34,050 그래서 한 가지 선형이다 분명히 의미 프로빙 365 00:19:34,050 --> 00:19:37,290 당신의 해시 함수 그 그다지 유용하지 않다 366 00:19:37,290 --> 00:19:42,200 당신이 사용하게하려고하고 있기 때문에 당신의 해시 함수, 포인트에 도착, 367 00:19:42,200 --> 00:19:46,400 당신은 아래로 조사 선형 사용할 수 있습니다 어떤 장소. 368 00:19:46,400 --> 00:19:49,670 하지만 지금은, 물론, 아무것도 거기에 끝이 다른 369 00:19:49,670 --> 00:19:52,050 당신이해야 돼요 더욱 아래로 검색 할 수 있습니다. 370 00:19:52,050 --> 00:19:55,650 >> 그리고 더 많은있다 검색 비용이 371 00:19:55,650 --> 00:19:59,820 요소를 입력 들어가는 이제 해시 테이블, 맞죠? 372 00:19:59,820 --> 00:20:05,640 그리고 지금 당신이 가서 시도하고 발견 할 때 베리는 다시, 당신은 그것을 해시거야, 373 00:20:05,640 --> 00:20:07,742 그것은 말할 것 오, 버킷 1에 보면, 374 00:20:07,742 --> 00:20:09,700 그것은 수 없을거야 버킷 1에, 그래서 당신은있어 375 00:20:09,700 --> 00:20:11,970 통과해야 할 것 이들의 나머지 부분을 통해. 376 00:20:11,970 --> 00:20:17,720 그래서, 때때로 유용 그러나 대부분의 경우, 377 00:20:17,720 --> 00:20:22,660 우리는 그런 말을하는거야 체인은 당신이 원하는 것입니다. 378 00:20:22,660 --> 00:20:25,520 >> 그래서 우리는이 이전에 대해 이야기했다. 379 00:20:25,520 --> 00:20:27,812 나는 나 자신의 조금 앞서있어. 380 00:20:27,812 --> 00:20:33,560 그러나 체인은 기본적으로 즉 하여 해쉬 테이블에서 각 버킷 381 00:20:33,560 --> 00:20:36,120 그냥 링크 목록입니다. 382 00:20:36,120 --> 00:20:39,660 >> 그래서 다른 방법으로, 또는 그 이상의 기술 방법, 해시 테이블 생각 383 00:20:39,660 --> 00:20:44,490 그냥 배열 점이다 연결리스트, 어떤 384 00:20:44,490 --> 00:20:49,330 때 당신이 당신의 사전을 작성하고 그리고 당신은 그것을로드하려고하고, 385 00:20:49,330 --> 00:20:52,070 로 생각 연결리스트의 배열 386 00:20:52,070 --> 00:20:54,390 훨씬 더 쉽게 만들 것 당신이 초기화 될 때까지. 387 00:20:54,390 --> 00:20:57,680 >> 청중 : 그래서 해시 테이블 소정의 크기를 갖는, 388 00:20:57,680 --> 00:20:58,980 버킷의 [들림] 같은? 389 00:20:58,980 --> 00:20:59,220 >> 스피커 1 : 맞아요. 390 00:20:59,220 --> 00:21:01,655 그래서 한 세트의 번호를 가지고 당신이 determine-- 버킷 391 00:21:01,655 --> 00:21:03,530 이는 너희들해야 플레이 주시기 바랍니다. 392 00:21:03,530 --> 00:21:05,269 그것은 정말 멋진 일 수있다 무슨 일이 있었 을까 393 00:21:05,269 --> 00:21:06,810 당신은 버킷의 전화 번호를 변경할 수있다. 394 00:21:06,810 --> 00:21:09,410 395 00:21:09,410 --> 00:21:11,510 하지만 그래,가 버킷의 설정 번호. 396 00:21:11,510 --> 00:21:15,360 어떻게 당신이로 적합 할 수 있습니다 당신이 필요로하는 많은 요소 397 00:21:15,360 --> 00:21:19,350 이 별도의 체인 어디입니까 각 버킷리스트를 연결했다. 398 00:21:19,350 --> 00:21:22,850 그게 당신의 해시 테이블을 의미 정확히 크기가됩니다 399 00:21:22,850 --> 00:21:25,440 당신은 잘 될하는 데 필요? 400 00:21:25,440 --> 00:21:27,358 즉, 연결리스트의 요점이다. 401 00:21:27,358 --> 00:21:30,850 402 00:21:30,850 --> 00:21:32,480 쿨. 403 00:21:32,480 --> 00:21:38,780 >> 이 그래서 모두 OK? 404 00:21:38,780 --> 00:21:39,801 좋아. 405 00:21:39,801 --> 00:21:40,300 아. 406 00:21:40,300 --> 00:21:41,860 방금 무슨 일이? 407 00:21:41,860 --> 00:21:42,960 정말 지금. 408 00:21:42,960 --> 00:21:45,250 누군가가 나를 죽이고 같아요. 409 00:21:45,250 --> 00:21:52,060 >> OK 우리는에 갈거야 조금 미친 시도. 410 00:21:52,060 --> 00:21:53,140 나는 해시 테이블을 좋아한다. 411 00:21:53,140 --> 00:21:54,460 나는 그들이 정말 멋진 것 같아요. 412 00:21:54,460 --> 00:21:56,710 시도는 너무 시원하다. 413 00:21:56,710 --> 00:21:59,590 >> 그래서 누군가는 시도가 무엇인지 기억 하는가? 414 00:21:59,590 --> 00:22:01,740 당신은 이상 갔었어야 이를 간략하게 강의에? 415 00:22:01,740 --> 00:22:04,570 416 00:22:04,570 --> 00:22:06,377 당신은 그것이 작동하는 방법의 종류를 기억하십니까? 417 00:22:06,377 --> 00:22:08,460 청중 : 난 그냥 고개를 끄덕 해요 우리는 가서 않았다. 418 00:22:08,460 --> 00:22:09,626 스피커 1 : 우리는 그것을 통해 가야합니까. 419 00:22:09,626 --> 00:22:13,100 OK, 우리가 정말 갈거야 현재 상황을 통해 우리는 무슨 말을하는지. 420 00:22:13,100 --> 00:22:14,860 >> 청중 : 즉, 검색 트리입니다. 421 00:22:14,860 --> 00:22:15,280 >> 스피커 1 : 그래. 422 00:22:15,280 --> 00:22:16,196 그것은 검색 트리입니다. 423 00:22:16,196 --> 00:22:16,960 신난다. 424 00:22:16,960 --> 00:22:23,610 그래서 여기에 주목해야 할 한 가지가 있다는 것입니다 우리 개별 문자를 찾고 있습니다 425 00:22:23,610 --> 00:22:24,480 여기, 바로? 426 00:22:24,480 --> 00:22:29,710 >> 그래서 우리의 해시 함수와 이전에, 우리 전체 단어를보고 있었다, 427 00:22:29,710 --> 00:22:32,270 이제 우리는 더 찾고 문자에서, 맞죠? 428 00:22:32,270 --> 00:22:38,380 그래서 우리는 여기 멘델을 통해 맥스웰 있습니다. 429 00:22:38,380 --> 00:22:47,840 그래서 기본적으로 try-- 방법이 생각하는 이것에 대해 그 모든 수준은 여기 430 00:22:47,840 --> 00:22:49,000 문자의 배열이다. 431 00:22:49,000 --> 00:22:53,310 432 00:22:53,310 --> 00:22:55,790 그래서이 루트 노드는 바로 여기에있다? 433 00:22:55,790 --> 00:23:01,980 이는 모든 문자가 모든 단어의 시작을위한 알파벳입니다. 434 00:23:01,980 --> 00:23:06,480 >> 하고 싶은 것은 말하자면, OK, 우리는 몇 가지 M 단어가 있습니다. 435 00:23:06,480 --> 00:23:10,590 우리는 맥스웰을 찾아 가고, 그래서있어 우리는 전체에 M. 그리고 M 포인트로 이동 436 00:23:10,590 --> 00:23:14,800 다른 배열 곳마다 만큼이 단어, 437 00:23:14,800 --> 00:23:17,044 이있는 단어입니다 두 번째 문자로, 438 00:23:17,044 --> 00:23:19,460 한 단어가있다로 두 번째 문자로 B가, 439 00:23:19,460 --> 00:23:24,630 그것은 포인터를해야합니다 일부 다음 배열로 이동. 440 00:23:24,630 --> 00:23:29,290 >> 아마이 아니다 단어 MP 뭔가, 441 00:23:29,290 --> 00:23:32,980 이의 P 위치에 따라서 배열, 그냥 NULL이 될 것이다. 442 00:23:32,980 --> 00:23:38,840 그것은 어떤 단어가 없다, 확인을 말할 것 즉 M은 OK, P 다음에있다? 443 00:23:38,840 --> 00:23:43,100 그래서 우리는, 각각에 대해 생각하는 경우 이러한 작은 것들 중 하나 444 00:23:43,100 --> 00:23:47,990 실제로 이들 중 하나입니다 Z까지에서 큰 배열 445 00:23:47,990 --> 00:23:55,064 그래서 것들 중 하나 무엇을 수 있습니다 그 시도의 단점 가지입니까? 446 00:23:55,064 --> 00:23:56,500 >> 청중 : 메모리의 많은. 447 00:23:56,500 --> 00:23:59,940 >> 스피커 1 : 그것은 바로, 메모리의 톤입니까? 448 00:23:59,940 --> 00:24:08,750 여기에 이​​러한 블록의 각 하나 26 대, 26 요소 배열을 나타냅니다. 449 00:24:08,750 --> 00:24:13,680 그래서 시도는 공간 무거운 믿을 수 없을만큼 얻을. 450 00:24:13,680 --> 00:24:17,100 >> 하지만 그들은 매우 빠르다. 451 00:24:17,100 --> 00:24:22,540 그래서 매우 빠르지 만 정말 공간이 비효율적. 452 00:24:22,540 --> 00:24:24,810 종류의 파악해야 어느 밖으로 당신이 원하는. 453 00:24:24,810 --> 00:24:29,470 다음은, 당신의 pset 정말 멋진 하지만 메모리를 많이 차지하지, 454 00:24:29,470 --> 00:24:30,290 그래서 당신은 트레이드 오프 (trade off). 455 00:24:30,290 --> 00:24:31,480 그래? 456 00:24:31,480 --> 00:24:34,300 >> 청중 :이 수 있을까 다음 시도를 설정하고 457 00:24:34,300 --> 00:24:37,967 당신은 일단 모든 당신이 need-- 그것이 데이터 458 00:24:37,967 --> 00:24:39,550 그 의미가하면 나도 몰라. 459 00:24:39,550 --> 00:24:42,200 내가 치우는 모든 NULL 문자,하지만 460 00:24:42,200 --> 00:24:42,910 당신은 인덱스 데모 테잎을 할 수 없을 것입니다 461 00:24:42,910 --> 00:24:43,275 >> 스피커 1 : 당신은 여전히​​ 필요합니다. 462 00:24:43,275 --> 00:24:44,854 >> 청중 : - 같은 방법으로 각각의 시간. 463 00:24:44,854 --> 00:24:45,520 스피커 1 : 그래. 464 00:24:45,520 --> 00:24:50,460 당신은 수 있도록 NULL 문자가 필요합니다 이 단어가 아니라면 당신은 알고있다. 465 00:24:50,460 --> 00:24:52,040 당신은 당신이 원하는 무언가가 벤습니까? 466 00:24:52,040 --> 00:24:52,540 확인을 클릭합니다. 467 00:24:52,540 --> 00:24:54,581 좋아, 그래서 우리는거야 조금 더 갈 468 00:24:54,581 --> 00:24:58,920 뒤에 기술적 인 세부 사항으로 시도하고 예를 통해 작동합니다. 469 00:24:58,920 --> 00:25:01,490 >> 좋아, 그럼이 같은 일이다. 470 00:25:01,490 --> 00:25:06,290 연결리스트에서, 우리의 주요 반면 ? 종류의 집게 리아 내가 원하는 말은 무엇인가 - 471 00:25:06,290 --> 00:25:08,350 빌딩 블록 같은 노드이었다. 472 00:25:08,350 --> 00:25:12,280 시도에서, 우리는 또한 노드가 그러나 그것은 다르게 정의입니다. 473 00:25:12,280 --> 00:25:17,000 >> 그래서 우리는 몇 가지 부울이 그 단어 여부 사실을 나타냅니다 474 00:25:17,000 --> 00:25:23,530 이 위치에 존재하고 우리는 이곳에 또는 오히려 약간의 배열을 475 00:25:23,530 --> 00:25:27,840 이에 대한 포인터입니다 27 문자의 배열입니다. 476 00:25:27,840 --> 00:25:33,339 그리고 이것은이,이 경우에 대한 것이다 27-- 나는 여러분 모두가 같은 확신 해요, 대기 477 00:25:33,339 --> 00:25:34,880 알파벳 26 글자가있다. 478 00:25:34,880 --> 00:25:36,010 왜 우리는 27해야합니까? 479 00:25:36,010 --> 00:25:37,870 >> 그래서에 따라 이 구현 방법, 480 00:25:37,870 --> 00:25:43,240 이 PSET에서입니다 아포스트로피 허용. 481 00:25:43,240 --> 00:25:46,010 그래서 왜 여분의 하나입니다. 482 00:25:46,010 --> 00:25:50,500 또한 일부있을 것이다 경우 널 (NULL) 종료 483 00:25:50,500 --> 00:25:53,230 중 하나로 포함되어 있습니다 가 될 수있어 문자, 484 00:25:53,230 --> 00:25:56,120 그것은 그들이에 확인 방법 이 단어의 끝이 어떤지를 확인합니다. 485 00:25:56,120 --> 00:26:01,340 당신이 관심이 있다면, 체크 아웃 study.cs50에 케빈의 비디오, 486 00:26:01,340 --> 00:26:04,790 뿐만 아니라 위키 백과가로 이 좋은 자원. 487 00:26:04,790 --> 00:26:09,000 >> 그러나 우리는 종류를 통해 갈거야 당신이 시도를 통해 작업하는 방법의 488 00:26:09,000 --> 00:26:11,010 당신이 하나를 쓰게. 489 00:26:11,010 --> 00:26:16,230 그래서 우리는 여기에 슈퍼 간단한 하나가 그 (것)들에있는 단어 "박쥐"와 "줌"을 가지고있다. 490 00:26:16,230 --> 00:26:18,920 그리고 우리가 여기서 보는 바와 같이, 여기이 작은 공간 491 00:26:18,920 --> 00:26:22,560 우리 부울를 나타내는 예,이 단어 말했다. 492 00:26:22,560 --> 00:26:27,060 그리고 이것은 우리가 문자의 배열, 오른쪽? 493 00:26:27,060 --> 00:26:33,480 >> 그래서 우리는 통과 예정 이 시도에 "박쥐"를 발견. 494 00:26:33,480 --> 00:26:38,340 그래서 오른쪽 상단에서 시작? 495 00:26:38,340 --> 00:26:46,290 그리고 우리는 B가에 해당하는 것을 알고 두 번째 인덱스, 두 번째 요소 496 00:26:46,290 --> 00:26:47,840 이 배열에서, 및 b 때문에. 497 00:26:47,840 --> 00:26:51,340 그래서 대략 번째. 498 00:26:51,340 --> 00:26:58,820 >> 그리고 OK,로 그 멋진 따르 말한다 다음 배열, 우리가 기억한다면 때문에, 499 00:26:58,820 --> 00:27:02,160 이들의 각 아니다 실제로 요소가 포함되어 있습니다. 500 00:27:02,160 --> 00:27:07,110 이러한 배열의 각각 오른쪽 포인터를 포함? 501 00:27:07,110 --> 00:27:10,030 그것은 만들 수있는 중요한 차이점이다. 502 00:27:10,030 --> 00:27:13,450 >> 나는이 시도는 나중에 ... 것입니다 알고 처음에 얻을 정말 열심히, 503 00:27:13,450 --> 00:27:15,241 그래서이 경우에도 두 번째 또는 세 번째 시간 504 00:27:15,241 --> 00:27:18,370 그것은 종류 아직 어려운 겉으로의, 505 00:27:18,370 --> 00:27:21,199 당신이 시계를 가면 약속 짧은 내일 다시, 506 00:27:21,199 --> 00:27:22,740 아마 훨씬 더 많은 의미가 있습니다. 507 00:27:22,740 --> 00:27:23,890 그것은 소화 많이 걸립니다. 508 00:27:23,890 --> 00:27:27,800 나는 아직도 가끔 생각 같은 잠깐, 시도는 무엇인가? 509 00:27:27,800 --> 00:27:29,080 이걸 어떻게 사용합니까? 510 00:27:29,080 --> 00:27:33,880 >> 그래서 우리는이 경우 B 조, 이는 두 번째 인덱스입니다. 511 00:27:33,880 --> 00:27:40,240 우리가 있던 경우에, 말하자면, C 또는 d 또는 다른 편지, 512 00:27:40,240 --> 00:27:45,810 우리는 색인이 다시 매핑 할 필요가 우리의 배열의 정보는 다음의 제품에 해당하는지. 513 00:27:45,810 --> 00:27:56,930 그래서 우리는 rchar처럼 걸릴 단지 우리 이 0-25로 매핑하는 오프 뺍니다. 514 00:27:56,930 --> 00:27:58,728 좋은 모두 어떻게 우리를 우리의 문자를이란? 515 00:27:58,728 --> 00:28:00,440 확인을 클릭합니다. 516 00:28:00,440 --> 00:28:05,980 >> 그래서 우리는 두 번째 우리로 이동 그 참조, 예, NULL로하지 않습니다. 517 00:28:05,980 --> 00:28:07,780 우리는이 다음 배열에 이동할 수 있습니다. 518 00:28:07,780 --> 00:28:12,300 그래서 우리는 여기이 다음 배열로 이동합니다. 519 00:28:12,300 --> 00:28:15,500 >> 그리고 우리는 지금, OK,라고 우리 여기에 있는지 확인해야합니다. 520 00:28:15,500 --> 00:28:18,590 이 null의 경우, 또는 그것을 않습니다 실제로 앞으로 이동? 521 00:28:18,590 --> 00:28:21,880 그래서 실제로 이동 이 배열에 전달합니다. 522 00:28:21,880 --> 00:28:24,570 그리고 우리는 OK, t는 우리의 마지막 문자, 말한다. 523 00:28:24,570 --> 00:28:27,580 그래서 우리는 인덱스에있는 T로 이동합니다. 524 00:28:27,580 --> 00:28:30,120 그리고 우리는 앞으로 이동 때문에 또 하나있다. 525 00:28:30,120 --> 00:28:38,340 그리고이 사람은, 네, 기본적으로 그 말한다 이 단어가 있다고 말한다와 ... 526 00:28:38,340 --> 00:28:41,750 당신이 따르는 경우에 그 경로, 당신은 도착했습니다 527 00:28:41,750 --> 00:28:43,210 단어에서, 우리가 알고있는 "박쥐"입니다. 528 00:28:43,210 --> 00:28:43,800 네? 529 00:28:43,800 --> 00:28:46,770 >> 청중 : 그 가지고하는 것이 표준이다 다음 인덱스 0으로 1의 종류가 530 00:28:46,770 --> 00:28:47,660 또는 끝 부분에있는가? 531 00:28:47,660 --> 00:28:48,243 >> 스피커 1 호 532 00:28:48,243 --> 00:28:55,360 우리가 다시 본다면 우리의 여기에 선언, 그것은 부울이다, 533 00:28:55,360 --> 00:28:59,490 그래서 노드에서 자신의 요소입니다. 534 00:28:59,490 --> 00:29:03,331 그래서 배열의 일부가 아니다. 535 00:29:03,331 --> 00:29:03,830 쿨. 536 00:29:03,830 --> 00:29:08,370 우리가 우리의 말을 마치고 그래서 우리는있어 이 배열에서, 우리는 무엇을 할 537 00:29:08,370 --> 00:29:12,807 이 단어에 대한 검사를 할 수 있습니다. 538 00:29:12,807 --> 00:29:14,390 그리고이 경우에는, 예 반환. 539 00:29:14,390 --> 00:29:17,220 540 00:29:17,220 --> 00:29:24,090 >> 그래서 그 주에, 우리는 "동물원"을 알고 - "동물원"는 말씀입니다 인간으로 우리는 알고있다 541 00:29:24,090 --> 00:29:24,820 맞죠? 542 00:29:24,820 --> 00:29:28,990 그러나 여기 것이다 시도된다 아니, 아니다,라고. 543 00:29:28,990 --> 00:29:33,980 그리고 그 말을 우리 때문에 여기 단어로 지정하지 않았습니다. 544 00:29:33,980 --> 00:29:40,440 심지어 우리가 통과 할 수 있지만 이 배열에 이르기까지, 545 00:29:40,440 --> 00:29:43,890 이 시도는, 아니, 그런 말을 동물원은 사전에없는 546 00:29:43,890 --> 00:29:47,070 우리는하지 않았기 때문에 등을 지정. 547 00:29:47,070 --> 00:29:52,870 >> 그래서 한 가지 방법은 거저해야 할 일 아, 죄송합니다,이. 548 00:29:52,870 --> 00:29:59,450 그래서이 경우, "동물원"아니다 단어지만 우리 시도이다. 549 00:29:59,450 --> 00:30:05,690 하지만이 하나, 우리가하고 싶은 말은 "목욕은,"무슨 일이 단어를 소개합니다 550 00:30:05,690 --> 00:30:08,260 우리가 through-- B, A, T를 수행합니다. 551 00:30:08,260 --> 00:30:11,820 우리는이 배열에있어, 그리고 우리는 시간을 검색으로 이동합니다. 552 00:30:11,820 --> 00:30:15,220 >> 이 경우, 언제 시간에 포인터를 보면, 553 00:30:15,220 --> 00:30:17,890 그것은 OK, NULL을 가리키는거야? 554 00:30:17,890 --> 00:30:20,780 명시 적으로 않는 한 그래서 다른 배열을 가리키는, 555 00:30:20,780 --> 00:30:25,000 당신은 가정의 모든 포인터 그 이 배열에 null로 가리키고있다. 556 00:30:25,000 --> 00:30:28,270 이 경우 그래서, 시간이 가리키는 우리는 아무것도 할 수 없습니다 그래서 null로, 557 00:30:28,270 --> 00:30:31,540 그래서 그것은 또한 반환 거짓, "목욕은"여기에 있지 않습니다. 558 00:30:31,540 --> 00:30:34,102 559 00:30:34,102 --> 00:30:35,810 그래서 지금 우리는 실제로있어 를 통해 갈 560 00:30:35,810 --> 00:30:39,790 어떻게 우리가 실제로 말을 그게 "동물원"우리의 시도입니다. 561 00:30:39,790 --> 00:30:42,920 우리는 어떻게 우리의 시도에 "동물원"을 삽입합니까? 562 00:30:42,920 --> 00:30:47,810 우리가 시작 동일한 방법으로 그래서 우리의 연결리스트, 우리는 루트에서 시작합니다. 563 00:30:47,810 --> 00:30:50,600 의심에서 시작하면 이러한 것들의 루트. 564 00:30:50,600 --> 00:30:53,330 >> 그리고 우리는, 확인, Z를 말할 것이다. 565 00:30:53,330 --> 00:30:55,650 Z이 존재하고,이하지. 566 00:30:55,650 --> 00:30:58,370 그래서 당신로 이동하고 다음 배열, OK? 567 00:30:58,370 --> 00:31:01,482 그리고 다음 하나에, 우리는 OK, O는 존재라고? 568 00:31:01,482 --> 00:31:03,000 그것은 않습니다. 569 00:31:03,000 --> 00:31:04,330 이 다시. 570 00:31:04,330 --> 00:31:08,670 >> 그리고 우리의 다음 하나, 우리는 말한 OK, "동물원"여기에 이​​미 존재합니다. 571 00:31:08,670 --> 00:31:12,440 우리가해야 할 일은이 동일하게 설정되어 참으로,이 단어가있다. 572 00:31:12,440 --> 00:31:15,260 당신은 모든 것을 따랐다 경우 그 시점 이전까지, 573 00:31:15,260 --> 00:31:17,030 이 단어의 그래서 그냥 등로는 동일하게 설정. 574 00:31:17,030 --> 00:31:17,530 네? 575 00:31:17,530 --> 00:31:22,550 >> 청중 : 그래서 그 수행 "바"는 단어는 것을 의미? 576 00:31:22,550 --> 00:31:24,120 >> 스피커 1 호 577 00:31:24,120 --> 00:31:28,870 그래서이 경우, "바"우리는 얻을 것 여기에, 우리는이 단어를 말할 것이다 578 00:31:28,870 --> 00:31:31,590 그것은 여전히​​가 없을 것이다. 579 00:31:31,590 --> 00:31:32,822 OK? 580 00:31:32,822 --> 00:31:33,740 음 .....? 581 00:31:33,740 --> 00:31:36,360 >> 청중 : 당신이 한 번 그래서 단어 당신은 그 다음, 네 말 582 00:31:36,360 --> 00:31:38,380 m로 이동이 포함됩니다? 583 00:31:38,380 --> 00:31:42,260 >> 스피커 1 : 그래서이 관련이있다 너의 ... 당신은이를로드하고 있습니다. 584 00:31:42,260 --> 00:31:43,640 당신은 "동물원"이 단어 말한다. 585 00:31:43,640 --> 00:31:47,020 당신은 check--에 갈 때 같은, 당신이 말하고 싶은 말, 586 00:31:47,020 --> 00:31:49,400 "동물원"이 사전에 존재 하는가? 587 00:31:49,400 --> 00:31:54,200 당신은 "동물원"을 검색 할거야 다음은 단어인지 확인합니다. 588 00:31:54,200 --> 00:31:57,291 당신은 절대 이동하지 못해 그 아니기 때문에 m에 이르기까지 589 00:31:57,291 --> 00:31:58,290 당신은 무엇을 찾고 있습니다. 590 00:31:58,290 --> 00:32:02,690 591 00:32:02,690 --> 00:32:08,070 >> 그래서 우리는 실제로 원한다면 이 시도에 "목욕"를 추가, 592 00:32:08,070 --> 00:32:11,390 우리는 같은 일을 할 것입니다 우리가했던 것처럼 "동물원" 593 00:32:11,390 --> 00:32:15,380 때 우리는 그것을 볼 것 제외 시도하고 시간에 도착, 그것은 존재하지 않습니다. 594 00:32:15,380 --> 00:32:20,090 시도 그래서 당신이 생각할 수있는 연결리스트에 새로운 노드를 추가, 595 00:32:20,090 --> 00:32:27,210 그래서 우리는 서로를 추가해야 그래서 같은 이러한 배열 중 하나. 596 00:32:27,210 --> 00:32:35,670 그리고 우리는 단지 시간을 설정 우리가하는 일 이 가리키는이 배열의 요소입니다. 597 00:32:35,670 --> 00:32:39,430 >> 그리고 우리는 여기서 뭘할까요? 598 00:32:39,430 --> 00:32:43,110 true로이 같은 추가 때문에 단어입니다. 599 00:32:43,110 --> 00:32:46,350 600 00:32:46,350 --> 00:32:48,150 쿨. 601 00:32:48,150 --> 00:32:48,700 나는 알고있다. 602 00:32:48,700 --> 00:32:51,170 시도는하지 가장 흥미로운입니다. 603 00:32:51,170 --> 00:32:54,250 날 믿어, 내가 알고있다. 604 00:32:54,250 --> 00:32:58,040 >> 그래서 한 가지 시도와 실현, 나는 그들이 매우 효율적이야 말했다. 605 00:32:58,040 --> 00:33:00,080 그래서 우리는 그들이 본 적이 공간의 톤을 차지합니다. 606 00:33:00,080 --> 00:33:01,370 그들은 종류의 혼동하고 있습니다. 607 00:33:01,370 --> 00:33:03,367 그럼 왜 우리는 이제까지이를 사용해야합니까? 608 00:33:03,367 --> 00:33:05,450 그들이이기 때문에 우리는이를 사용 매우 효율적입니다. 609 00:33:05,450 --> 00:33:08,130 >> 만약 당신이 찾는 경우에 따라서 단어까지 만입니다 610 00:33:08,130 --> 00:33:10,450 단어의 길이에 의해 제한. 611 00:33:10,450 --> 00:33:15,210 그래서 만약 당신이 찾고있는 길이 다섯이다 단어, 612 00:33:15,210 --> 00:33:20,940 당신이 오직해야 할거야 OK, 대부분의 다섯 비교에서 사진을? 613 00:33:20,940 --> 00:33:25,780 그래서 그것은 기본적으로 일정하게 만든다. 614 00:33:25,780 --> 00:33:29,150 삽입 및 조회처럼 기본적으로 일정 시간이다. 615 00:33:29,150 --> 00:33:33,750 >> 만약 당신이 얻을 수 있다면 그래서 일정 시간에 뭔가, 616 00:33:33,750 --> 00:33:35,150 즉 이보다 더 좋을 순 없다입니다. 617 00:33:35,150 --> 00:33:37,990 당신은보다 더 얻을 수 없다 이러한 것들에 대한 일정 시간. 618 00:33:37,990 --> 00:33:43,150 그래서 그 중 하나입니다 시도의 거대한 흑자. 619 00:33:43,150 --> 00:33:46,780 >> 그러나 많은 공간이다. 620 00:33:46,780 --> 00:33:50,380 그래서 당신은 가지를 결정해야 무슨 일이 더 중요합니다. 621 00:33:50,380 --> 00:33:54,700 그리고 오늘날의 컴퓨터에, 공간 시도가 걸릴 수 622 00:33:54,700 --> 00:33:57,740 어쩌면 영향을주지 않습니다 당신이 그 많은,하지만 어쩌면 623 00:33:57,740 --> 00:34:01,350 당신이 뭔가를 처리하고 즉, 훨씬, 훨씬 더 많은 일을 가지고 624 00:34:01,350 --> 00:34:02,810 과 시도는 합리적이 아니다. 625 00:34:02,810 --> 00:34:03,000 네? 626 00:34:03,000 --> 00:34:05,610 >> 청중 : 잠깐, 그래서 당신은 (26)가 하나 하나의 문자? 627 00:34:05,610 --> 00:34:07,440 >> 스피커 1 : 음 ...... 628 00:34:07,440 --> 00:34:08,570 그래, 당신은 (26)이있다. 629 00:34:08,570 --> 00:34:16,984 당신은 일부는 다음 단어 마커이며이 당신은 모든 일에서 26 포인터를 가지고있다. 630 00:34:16,984 --> 00:34:17,775 그리고 그들은 가실 수 없습니다 .--있어 631 00:34:17,775 --> 00:34:20,280 >> 청중 : 모든 26 그들은 각각 26해야합니까? 632 00:34:20,280 --> 00:34:21,500 >> 스피커 1 : 네. 633 00:34:21,500 --> 00:34:27,460 당신이 할 수 그리고는 이유 그것은 아주 빠른 속도로 확장을 참조하십시오. 634 00:34:27,460 --> 00:34:28,130 좋아. 635 00:34:28,130 --> 00:34:32,524 그래서 우리는 나무로받을거야하는 내가 좋아 쉽게 느낄 아마 것 636 00:34:32,524 --> 00:34:36,150 좋은 작은 집행 유예 수 이 시도에서. 637 00:34:36,150 --> 00:34:39,620 그래서 희망이 당신의 가장 전에 나무를 보았다. 638 00:34:39,620 --> 00:34:41,820 꽤 마음에 들지 외부 사람, 어떤 I 639 00:34:41,820 --> 00:34:44,340 누구나 알고하지 않습니다 최근 야외 갔다. 640 00:34:44,340 --> 00:34:49,230 나는 애플이 이번 주말을 따기 갔다, 그리고 맙소사, 그것은 아름다웠다. 641 00:34:49,230 --> 00:34:52,250 나는 잎을 몰랐다 그 꽤 볼 수 있었다. 642 00:34:52,250 --> 00:34:53,610 >> 그래서 그냥 나무, 오른쪽인가? 643 00:34:53,610 --> 00:34:56,790 그것은 단지 일부 노드, 그리고 그것을 다른 노드의 무리를 가리 킵니다. 644 00:34:56,790 --> 00:34:59,570 당신이 여기에서 보는 바와 같이,이입니다 반복되는 테마 가지. 645 00:34:59,570 --> 00:35:03,720 노드 노드 가리키는 가지입니다 많은 데이터 구조의 본질. 646 00:35:03,720 --> 00:35:06,670 그것은 단지 우리 방법에 따라 달라집니다 그들이 서로 가리 647 00:35:06,670 --> 00:35:08,600 우리가 어떻게 통과 그들을 통해 어떻게 우리 648 00:35:08,600 --> 00:35:14,500 그 결정 것들을 삽입 서로 다른 특성. 649 00:35:14,500 --> 00:35:17,600 >> 그래서 그냥 몇 가지 용어, 이는 내가 전에 사용했습니다. 650 00:35:17,600 --> 00:35:20,010 그래서 루트는 맨 위에 무엇이든이다. 651 00:35:20,010 --> 00:35:21,200 우리는 항상 시작하는 곳이다. 652 00:35:21,200 --> 00:35:23,610 또한 머리로 생각할 수 있습니다. 653 00:35:23,610 --> 00:35:28,750 그러나 나무를 위해, 우리는 경향이 루트로 참조. 654 00:35:28,750 --> 00:35:32,820 >> 하단들을 이곳에서 아무것도 아주, 아주 심연에서 655 00:35:32,820 --> 00:35:34,500 고려 잎입니다. 656 00:35:34,500 --> 00:35:37,210 그래서 함께 간다 전체 트리 일, 맞죠? 657 00:35:37,210 --> 00:35:39,860 잎은 나무의 가장자리에있다. 658 00:35:39,860 --> 00:35:45,820 >> 그리고 우리는 또한 몇가 용어는 관계의 노드에 대해 이야기 659 00:35:45,820 --> 00:35:46,680 서로. 660 00:35:46,680 --> 00:35:49,700 그래서 우리는 부모가 자녀, 형제. 661 00:35:49,700 --> 00:35:56,260 그래서이 경우,도 3은 5, 6 및 7의 부모. 662 00:35:56,260 --> 00:36:00,370 그래서 부모는 무엇이든입니다 당신이있어 어떤 위에서 한 단계 663 00:36:00,370 --> 00:36:02,940 그래서 그냥, 참조 가족 나무처럼. 664 00:36:02,940 --> 00:36:07,090 바라 건데,이 모든 조금이다 비트 시도보다 더 직관적 인. 665 00:36:07,090 --> 00:36:10,970 >> 형제 자매가 그 어떤 있습니다 바로 같은 부모,? 666 00:36:10,970 --> 00:36:13,470 그들은 여기에 같은 수준에있어. 667 00:36:13,470 --> 00:36:16,960 그리고 나는이었다로 말, 어린이는있다 668 00:36:16,960 --> 00:36:22,630 아래의 한 단계는 무엇입니다 문제가되는 노드에, OK? 669 00:36:22,630 --> 00:36:23,470 쿨. 670 00:36:23,470 --> 00:36:25,610 그래서 이진 트리. 671 00:36:25,610 --> 00:36:31,450 누구든지 중 하나를 짐작 할 수 이진 트리의 특성? 672 00:36:31,450 --> 00:36:32,770 >> 청중 : 최대 두 잎. 673 00:36:32,770 --> 00:36:33,478 >> 스피커 1 : 맞아요. 674 00:36:33,478 --> 00:36:34,640 그래서 두 잎의 최대. 675 00:36:34,640 --> 00:36:39,730 그래서 전에이 하나, 우리는이 하나 있었다 즉, 세 있었지만 이진 트리 676 00:36:39,730 --> 00:36:45,000 두 가지의 최대이 부모 당 어린이, 맞죠? 677 00:36:45,000 --> 00:36:46,970 다른있다 흥미로운 특징. 678 00:36:46,970 --> 00:36:51,550 사람은 알고 있습니까? 679 00:36:51,550 --> 00:36:52,620 이진 트리. 680 00:36:52,620 --> 00:37:00,350 >> 그래서 이진 트리가 모든 것 엥에이 하나 sorted-- 아니다 681 00:37:00,350 --> 00:37:05,320 하지만 정렬 된 이진 트리에, 오른쪽에있는 모든 682 00:37:05,320 --> 00:37:08,530 부모보다 큰 왼쪽에있는 모든 683 00:37:08,530 --> 00:37:10,035 부모보다 작습니다. 684 00:37:10,035 --> 00:37:15,690 그리고 그 퀴즈왔다 질문하기 전에, 그래서 좋은 알고. 685 00:37:15,690 --> 00:37:19,500 그래서 우리는이를 정의하는 방법, 다시, 우리는 다른 노드가 있습니다. 686 00:37:19,500 --> 00:37:21,880 이것은 것과 매우 비슷합니다? 687 00:37:21,880 --> 00:37:28,336 688 00:37:28,336 --> 00:37:28,836 두 곱으로 689 00:37:28,836 --> 00:37:29,320 >> 청중 : 연결리스트 690 00:37:29,320 --> 00:37:31,100 >> 스피커 1 : 이중 연결리스트, 오른쪽? 691 00:37:31,100 --> 00:37:33,690 그래서 우리는 이것을 대체 할 경우 이전 및 다음으로, 692 00:37:33,690 --> 00:37:35,670 이 이중 연결리스트가 될 것입니다. 693 00:37:35,670 --> 00:37:40,125 그러나이 경우에, 우리는 실제로 좌 · 우 및 그것 뿐이다 있습니다. 694 00:37:40,125 --> 00:37:41,500 그렇지 않으면, 똑같은이다. 695 00:37:41,500 --> 00:37:43,374 우리는 여전히 요소가 당신이 찾고있는 696 00:37:43,374 --> 00:37:45,988 당신은 단지 두 개의 포인터를 가지고 무엇에가는 것은 다음입니다. 697 00:37:45,988 --> 00:37:49,210 698 00:37:49,210 --> 00:37:51,870 그래, 그래서 이진 검색 트리. 699 00:37:51,870 --> 00:37:57,665 우리는에, 모든 것을 통지하는 경우 바로 여기에 큰 than--입니다 700 00:37:57,665 --> 00:37:59,850 즉시 또는 모든 여기에서 오른쪽 701 00:37:59,850 --> 00:38:02,840 모든 것이보다 크다 여기보다 작습니다. 702 00:38:02,840 --> 00:38:06,980 703 00:38:06,980 --> 00:38:14,000 >> 그래서 우리는을 통해 검색 할 수 있다면, 그것을 이진 검색에 매우 가깝게 보일 것 704 00:38:14,000 --> 00:38:14,910 여기, 바로? 705 00:38:14,910 --> 00:38:17,640 대신 찾고 제외 반 배열에서, 706 00:38:17,640 --> 00:38:21,720 우리는 단지 하나 왼쪽에서 찾고 있습니다 사이드 또는 트리의 오른쪽. 707 00:38:21,720 --> 00:38:24,850 조금 간단하게 얻을 수 있도록, 나는 생각한다. 708 00:38:24,850 --> 00:38:29,300 >> 루트가 NULL 인 경우에 따라서, 분명히 그냥 거짓이다. 709 00:38:29,300 --> 00:38:33,470 그것은이 있다면 그리고, 분명히 그것은 사실입니다. 710 00:38:33,470 --> 00:38:35,320 그 이하의 경우에, 우리는 왼쪽을 검색 할 수 있습니다. 711 00:38:35,320 --> 00:38:37,070 그것보다 더 있다면, 우리는 권리를 검색 할 수 있습니다. 712 00:38:37,070 --> 00:38:39,890 그것은 정확히 이진 검색처럼 다만 서로 다른 데이터 구조 713 00:38:39,890 --> 00:38:40,600 것을 우리가 사용하고 있습니다. 714 00:38:40,600 --> 00:38:42,790 배열 대신, 그냥 이진 트리입니다. 715 00:38:42,790 --> 00:38:45,820 716 00:38:45,820 --> 00:38:48,090 >> OK, 스택. 717 00:38:48,090 --> 00:38:51,550 또한, 우리처럼 보인다 약간의 시간을 가질 수 있습니다. 718 00:38:51,550 --> 00:38:54,460 우리가 할 경우에, 나는 갈 행복 해요 이 중 다시. 719 00:38:54,460 --> 00:38:56,856 좋아, 그럼 스택. 720 00:38:56,856 --> 00:39:02,695 사람은 무엇을 기억 하는가 stacks-- 스택의 특성? 721 00:39:02,695 --> 00:39:05,550 722 00:39:05,550 --> 00:39:10,400 >> OK, 우리의 대부분, 그래서 나는 생각한다, 식당에서 식사를 halls-- 723 00:39:10,400 --> 00:39:13,100 우리가 좋아하지 않을 수만큼. 724 00:39:13,100 --> 00:39:16,900 그러나 분명히, 당신은 스택 생각할 수 말 그대로 그냥 트레이의 스택으로 725 00:39:16,900 --> 00:39:18,460 또는 사물의 스택. 726 00:39:18,460 --> 00:39:21,820 그리고 어떤 일이 중요합니다 실현하기 위해 그것의 것입니다 727 00:39:21,820 --> 00:39:26,850 특성을 탔던 우리가 고요 지나가는 부르는 LIFO이다. 728 00:39:26,850 --> 00:39:28,450 사람은 무엇의 약자인지 알고 있나요? 729 00:39:28,450 --> 00:39:29,070 음 .....? 730 00:39:29,070 --> 00:39:30,650 >> 관객 : 첫째, 아웃 지속됩니다. 731 00:39:30,650 --> 00:39:32,250 >> 스피커 1 : 오른쪽, 첫 번째, 아웃 지속됩니다. 732 00:39:32,250 --> 00:39:36,585 우리가 알고있는 경우에 따라서, 우리는 물건을 적재하는 경우 최대, 가장 쉬운 일이 마지막으로 .. 잡아합니다 733 00:39:36,585 --> 00:39:39,570 어쩌면 유일한 것은 우리가 잡을 수 있습니다 우리의 스택이 큰 enough-- 경우 해제 734 00:39:39,570 --> 00:39:40,850 그 위에 요소이다. 735 00:39:40,850 --> 00:39:43,460 그래서 어떤이에 넣어 우리가 여기에 참조로 last--, 736 00:39:43,460 --> 00:39:46,370 어떤 밀렸다 대부분에 recently--입니다 737 00:39:46,370 --> 00:39:51,160 첫 번째가 될 것 우리가 떨어져 팝업 것은, OK? 738 00:39:51,160 --> 00:39:56,324 >> 그래서 우리가 여기에있는 것은 다른 형식 정의 구조체. 739 00:39:56,324 --> 00:39:58,740 이것은 정말 그냥 좋아한다 데이터 구조 과정을 충돌, 740 00:39:58,740 --> 00:40:01,650 그래서 너희들 던져 많이있다. 741 00:40:01,650 --> 00:40:02,540 나는 알고있다. 742 00:40:02,540 --> 00:40:04,970 그래서 또 다른 구조체. 743 00:40:04,970 --> 00:40:06,740 구조에 대한 야호. 744 00:40:06,740 --> 00:40:16,660 >> 그리고이 경우에는, 포인터의 일부 어떤 능력을 가지고 배열. 745 00:40:16,660 --> 00:40:20,830 그래서 이것은 우리의 스택을 나타냅니다 여기에, 우리의 실제 배열과 같은 746 00:40:20,830 --> 00:40:22,520 즉, 우리의 요소를 잡고있다. 747 00:40:22,520 --> 00:40:24,850 그리고 여기에 우리는 몇 가지 크기가있다. 748 00:40:24,850 --> 00:40:31,170 >> 그리고 일반적으로, 당신은 유지하려는 당신의 스택이 얼마나 큰 추적 749 00:40:31,170 --> 00:40:36,180 그것은 수 있도록 무슨 일 때문에 당신이 크기를 알고있는 경우에 할 일은, 750 00:40:36,180 --> 00:40:39,170 당신이 말을 할 수 있습니다, 좋아, 내가 용량 무엇입니까? 751 00:40:39,170 --> 00:40:40,570 나는 더 많은 것을 추가 할 수 있습니까? 752 00:40:40,570 --> 00:40:44,650 그리고 그것은 또한 당신을 알려줍니다 어디 스택의 상단 753 00:40:44,650 --> 00:40:48,180 그래서 당신은 무엇을 알고 실제로 이륙 할 수 있습니다. 754 00:40:48,180 --> 00:40:51,760 그리고 그 사실에 무슨 여기에 좀 더 명확하게. 755 00:40:51,760 --> 00:40:57,350 >> 그래서 푸시, 한 가지를 들어, 경우 푸시를 구현하기 위해 이제까지했다, 756 00:40:57,350 --> 00:41:01,330 그러니까 내 말대로, 당신을 스택은 권리, 제한된 크기가? 757 00:41:01,330 --> 00:41:03,990 우리의 배열은 어떤 능력을 가지고 있었다. 758 00:41:03,990 --> 00:41:04,910 그것은 배열입니다. 759 00:41:04,910 --> 00:41:08,930 그것은 고정 된 크기, 그래서 우리는 필요 우리는 더 참을​​ 수 없어하고 있는지 확인 760 00:41:08,930 --> 00:41:11,950 우리보다 우리의 배열에 실제로위한 공간이있다. 761 00:41:11,950 --> 00:41:16,900 >> 그래서 때 푸시를 만드는 기능, 확인, 말입니다 할 첫 번째 일은, 762 00:41:16,900 --> 00:41:18,570 내 스택의 공간을해야합니까? 763 00:41:18,570 --> 00:41:23,330 내가하지 않으면, 미안 때문에 나는 당신의 요소를 저장할 수 없습니다. 764 00:41:23,330 --> 00:41:28,980 내가 할 경우에, 당신은 저장할 그것은 스택의 상단 오른쪽? 765 00:41:28,980 --> 00:41:31,325 >> 그리고 이것은 우리가 가지고있는 이유 우리의 크기를 추적합니다. 766 00:41:31,325 --> 00:41:35,290 우리는 우리의 크기를 추적하지 않는 경우, 우리는 그것을 어디에 둘지 모른다. 767 00:41:35,290 --> 00:41:39,035 우리는 얼마나 많은 일을 모르는 이미 우리의 배열에 있습니다. 768 00:41:39,035 --> 00:41:41,410 분명히 같이 가지 방법이 있습니다 어쩌면 당신은 그것을 할 수 있습니다. 769 00:41:41,410 --> 00:41:44,610 당신은 NULL로 모든 것을 초기화 할 수 다음 최신 NULL을 확인, 770 00:41:44,610 --> 00:41:47,950 하지만 훨씬 쉽게 일이 그냥 OK, 크기를 추적, 대답. 771 00:41:47,950 --> 00:41:51,840 내가 알고있는 것처럼 네 개의 요소가 내 배열, 다음 일은 그렇게 772 00:41:51,840 --> 00:41:55,930 우리에 넣어, 우리는있어 인덱스 4에 저장하는 것이다. 773 00:41:55,930 --> 00:42:00,940 그리고, 물론, 이것은을 의미 당신은 성공적으로 일을 추진했습니다 774 00:42:00,940 --> 00:42:03,320 당신의 스택 위에, 당신 크기를 늘리려면 775 00:42:03,320 --> 00:42:08,880 당신이 알 수 있도록 그렇게 어디에 당신은 더 많은 일을 밀어 수 있습니다. 776 00:42:08,880 --> 00:42:12,730 >> 우리가 팝업하려고한다면 스택에서 뭔가, 777 00:42:12,730 --> 00:42:16,072 첫 번째 일이 될 수 있습니다 무엇 우리는 확인하려는? 778 00:42:16,072 --> 00:42:18,030 당신은 걸릴려고 당신의 스택에서 뭔가. 779 00:42:18,030 --> 00:42:21,710 780 00:42:21,710 --> 00:42:24,781 당신은 반드시 거기에 있습니까 당신의 스택에 뭔가? 781 00:42:24,781 --> 00:42:25,280 아니오. 782 00:42:25,280 --> 00:42:26,894 그래서 우리는 확인 할 수 있습니다? 783 00:42:26,894 --> 00:42:27,810 >> 청중 : [들리지]. 784 00:42:27,810 --> 00:42:29,880 스피커 1 : 크기를 확인? 785 00:42:29,880 --> 00:42:31,840 크기. 786 00:42:31,840 --> 00:42:38,520 그래서 우리가 있는지 확인하려면 우리의 크기는 OK, 0보다 크다? 787 00:42:38,520 --> 00:42:44,970 그것이 경우에, 우리는 감소 할 0에 의해 우리의 크기와 그를 돌려줍니다. 788 00:42:44,970 --> 00:42:45,840 왜? 789 00:42:45,840 --> 00:42:49,950 >> 처음에 우리는 있었다 밀어, 우리는 그것을 밀어 790 00:42:49,950 --> 00:42:52,460 크기와 다음 업데이트 크기 위에. 791 00:42:52,460 --> 00:42:57,850 이 경우, 우리는 크기를 감소시키는 것 다음을 뽑고, 그것을 이륙 792 00:42:57,850 --> 00:42:58,952 우리의 배열. 793 00:42:58,952 --> 00:42:59,826 왜 우리는 그렇게 할 수 있습니까? 794 00:42:59,826 --> 00:43:04,800 795 00:43:04,800 --> 00:43:11,811 그래서 난 내 스택에 한 가지가 있다면, 그 시점에서 나의 크기 있을까요? 796 00:43:11,811 --> 00:43:13,140 1. 797 00:43:13,140 --> 00:43:15,180 >> 어디 요소 1은 저장됩니까? 798 00:43:15,180 --> 00:43:17,621 무엇 인덱스에? 799 00:43:17,621 --> 00:43:18,120 청중 : 0. 800 00:43:18,120 --> 00:43:19,060 스피커 1 : 0. 801 00:43:19,060 --> 00:43:22,800 이 경우 그래서, 우리 항상 싶은건 802 00:43:22,800 --> 00:43:27,630 대신 반환 크기 - 1, 우리 때문에 803 00:43:27,630 --> 00:43:31,730 우리의 요소가 있음을 알 1 이하로 저장 될 것 804 00:43:31,730 --> 00:43:34,705 우리의 크기가 무엇이든,이 그냥 처리한다. 805 00:43:34,705 --> 00:43:36,080 그것은 약간 더 우아한 방법입니다. 806 00:43:36,080 --> 00:43:41,220 그리고 우리는 단지 우리를 감소 다음 크기와 크기를 반환합니다. 807 00:43:41,220 --> 00:43:42,330 음 .....? 808 00:43:42,330 --> 00:43:45,300 >> 청중 : 나는, 단지 일반적으로 추측 이유는이 데이터 구조는 것 809 00:43:45,300 --> 00:43:47,800 도움이 될? 810 00:43:47,800 --> 00:43:50,660 >> 스피커 1 : 그것은 당신의 상황에 따라 달라집니다. 811 00:43:50,660 --> 00:43:57,420 이론의 일부 그래서, 확인을 먹게됐다 작업하는 경우, 812 00:43:57,420 --> 00:44:02,750 유익한 존재하는 경우 나 보자 그 밖에보다 더 유리하다 813 00:44:02,750 --> 00:44:05,420 CS의. 814 00:44:05,420 --> 00:44:15,780 스택, 어떤 시간이 필요 뭔가를 추적하는 그 815 00:44:15,780 --> 00:44:20,456 가장 최근에 추가 된 경우입니다 당신은 스택을 사용할 것입니다. 816 00:44:20,456 --> 00:44:24,770 >> 그리고 나는 좋은 생각할 수 없다 지금 그 예. 817 00:44:24,770 --> 00:44:29,955 그러나 때마다 가장 최근의를 일이 가장 중요하다 818 00:44:29,955 --> 00:44:31,705 그 때 스택의 유용 할 것입니다. 819 00:44:31,705 --> 00:44:35,797 820 00:44:35,797 --> 00:44:39,330 나는 경우에 생각하려고 해요 이것에 대한 좋은 일이있다. 821 00:44:39,330 --> 00:44:43,720 나는 다음에 좋은 예를 생각한다면 20 분, 나는 확실히 당신에게 말할 것이다. 822 00:44:43,720 --> 00:44:49,455 >> 그러나 전반적으로, 거기에 아무것도 경우, 같은 나는 대부분의 경우 가장 최근에 말했다 823 00:44:49,455 --> 00:44:52,470 즉, 가장 중요한 것입니다 여기서 스택은 놀이로 제공됩니다. 824 00:44:52,470 --> 00:44:58,860 큐 반면 반대 가지입니다. 825 00:44:58,860 --> 00:44:59,870 그리고 모든 작은 개. 826 00:44:59,870 --> 00:45:00,890 바로이 위대한 아닌가요? 827 00:45:00,890 --> 00:45:03,299 나는 내가해야 같은 느낌 단지 토끼 영상이 828 00:45:03,299 --> 00:45:05,090 권리의 중간에 너희들 섹션 829 00:45:05,090 --> 00:45:08,870 이 강렬한 부분이기 때문이다. 830 00:45:08,870 --> 00:45:10,480 >> 그래서 큐. 831 00:45:10,480 --> 00:45:12,710 기본적으로 큐는 라인과 같다. 832 00:45:12,710 --> 00:45:15,780 너희들 내가이 매일 확인 사용 해요, 우리의 식당에서 좋아한다. 833 00:45:15,780 --> 00:45:18,160 그래서 우리는에 갈 필요가 그리고 난, 우리의 트레이를 얻을 수 834 00:45:18,160 --> 00:45:21,260 반드시이 줄을 기다려야 슬쩍 또는 음식을 얻을 수 있습니다. 835 00:45:21,260 --> 00:45:24,650 >> 여기 차분 그래서 이 FIFO 것입니다. 836 00:45:24,650 --> 00:45:30,090 그래서 LIFO 먼저, 마지막 인 경우 아웃, FIFO는 먼저 서비스에있다. 837 00:45:30,090 --> 00:45:33,400 그래서 이것은 당신이 어디에 넣어 뭐든 처음에 가장 중요하다. 838 00:45:33,400 --> 00:45:35,540 당신이 기다리는 경우에 따라서 한테 들었 냐에서 당신을 수 839 00:45:35,540 --> 00:45:39,130 당신이 가면 상상 새로운 아이폰을 가서 840 00:45:39,130 --> 00:45:42,800 그리고 스택은 어디에 라인의 마지막 사람이 먼저있어 841 00:45:42,800 --> 00:45:44,160 사람들은 서로를 죽일 것입니다. 842 00:45:44,160 --> 00:45:49,800 >> 그래서 FIFO, 우리 모두 아주 잘 알고 여기에 현실 세계와, 843 00:45:49,800 --> 00:45:54,930 그리고 모든 사실과 관련이있다 종류의이 모든 라인을 다시 844 00:45:54,930 --> 00:45:56,900 과 구조를 대기. 845 00:45:56,900 --> 00:46:02,390 스택 반면 그래서, 우리는 푸시와 팝을 가지고있다. 846 00:46:02,390 --> 00:46:06,440 큐, 우리는이 대기열 및 대기열에서 제외. 847 00:46:06,440 --> 00:46:10,910 그래서 대기열은 기본적으로 의미 뒷면에 넣어, 848 00:46:10,910 --> 00:46:13,680 및 대기열에서 제외 수단을 가지고 전면에서 끕니다. 849 00:46:13,680 --> 00:46:18,680 그래서 우리의 데이타 구조는 조금 더 복잡합니다. 850 00:46:18,680 --> 00:46:21,060 우리는 추적 할 두 번째 문제가있다. 851 00:46:21,060 --> 00:46:25,950 >> 이, 머리가없는 그래서 오른쪽 정확하게 스택입니까? 852 00:46:25,950 --> 00:46:27,900 이는 스택과 동일한 구조이다. 853 00:46:27,900 --> 00:46:32,480 다른 유일한 것은 지금 우리입니다 당신이 어떻게 생각이 머리를 가지고 854 00:46:32,480 --> 00:46:34,272 를 추적 할거야? 855 00:46:34,272 --> 00:46:35,510 >> 청중 : 첫 번째. 856 00:46:35,510 --> 00:46:38,685 >> 스피커 1 : 오른쪽, 우리는에 넣어 먼저. 857 00:46:38,685 --> 00:46:41,130 우리의 큐의 선두. 858 00:46:41,130 --> 00:46:42,240 누구든지 첫 줄에 있습니다. 859 00:46:42,240 --> 00:46:45,300 860 00:46:45,300 --> 00:46:49,420 좋아, 그래서 우리는 대기열을합니다. 861 00:46:49,420 --> 00:46:52,720 862 00:46:52,720 --> 00:46:55,920 다시, 임의의와 이러한 데이터 구조, 863 00:46:55,920 --> 00:46:59,760 우리가 배열을 취급하고 있기 때문에, 우리는 우리가 공간이 있는지 확인해야합니다. 864 00:46:59,760 --> 00:47:03,290 >> 이 날 이야기 같은 종류의 것입니다 너희들, 당신이 파일을 열 경우, 865 00:47:03,290 --> 00:47:04,760 당신은 널 (null)를 확인해야합니다. 866 00:47:04,760 --> 00:47:08,330 이 스택에 상관 그리고 큐, 당신은 필요 867 00:47:08,330 --> 00:47:13,420 우리가이기 때문에 공간이 있는지 확인합니다 고정 된 크기의 배열을 다루는, 868 00:47:13,420 --> 00:47:16,030 우리는 5까지 이곳에 0, 1을 참조로. 869 00:47:16,030 --> 00:47:20,690 그래서 우리는이 경우에 무엇을 체크입니다 우리는 여전히 공간이 있는지 확인합니다. 870 00:47:20,690 --> 00:47:23,110 우리의 크기는 용량보다 적은 있습니까? 871 00:47:23,110 --> 00:47:28,480 >> 그렇다면, 우리는 그것을 저장해야 우리는 우리의 크기를 업데이트하고 꼬리. 872 00:47:28,480 --> 00:47:30,250 그래서 꼬리는이 경우에 무엇을 할 수 있는가? 873 00:47:30,250 --> 00:47:32,360 그것은 명시 적으로 기입 아니에요. 874 00:47:32,360 --> 00:47:33,380 우리는 어떻게 그것을 저장할 것인가? 875 00:47:33,380 --> 00:47:34,928 꼬리는 어떤 것입니까? 876 00:47:34,928 --> 00:47:38,600 877 00:47:38,600 --> 00:47:40,190 >> 그래서이 예제를 걸어 보자. 878 00:47:40,190 --> 00:47:44,590 그래서이 6 사이즈의 배열이 오른쪽인가? 879 00:47:44,590 --> 00:47:49,220 그리고 우리는 지금, 우리의 크기가 5있다. 880 00:47:49,220 --> 00:47:55,240 우리가 그것을 넣어 때, 돼가 오른쪽 다섯 번째 인덱스로 이동합니다? 881 00:47:55,240 --> 00:47:57,030 그래서 꼬리에 저장합니다. 882 00:47:57,030 --> 00:48:05,600 >> 꼬리를 작성하는 또 다른 방법은가 .. 크기의 인덱스에서 우리의 배열은, 잘 될? 883 00:48:05,600 --> 00:48:07,560 이 크기는 5입니다. 884 00:48:07,560 --> 00:48:11,490 다음 것은 5로 갈 것입니다. 885 00:48:11,490 --> 00:48:12,296 쿨? 886 00:48:12,296 --> 00:48:13,290 확인을 클릭합니다. 887 00:48:13,290 --> 00:48:16,350 이것은 약간 더 복잡해진다 우리는 머리를 엉망으로 시작할 때. 888 00:48:16,350 --> 00:48:17,060 네? 889 00:48:17,060 --> 00:48:20,090 >> 청중 : 그 뜻이 우리 배열을 선언 한 것이라고 890 00:48:20,090 --> 00:48:23,880 다섯 가지 요소 긴 및 우리는에 추가하고? 891 00:48:23,880 --> 00:48:24,730 >> 스피커 1 호 892 00:48:24,730 --> 00:48:27,560 그래서이 경우에는,이 스택이다. 893 00:48:27,560 --> 00:48:31,760 이 선언 될 것이다 6 사이즈의 배열로서. 894 00:48:31,760 --> 00:48:37,120 그리고이 경우에, 우리 하나의 공간 왼쪽에 있습니다. 895 00:48:37,120 --> 00:48:42,720 >> 좋아, 그럼 한 가지이에 경우, 우리의 머리가 0 인 경우, 896 00:48:42,720 --> 00:48:45,270 우리는 단지 크기에 추가 할 수 있습니다. 897 00:48:45,270 --> 00:48:51,020 그러나 조금 까다를 가져옵니다 실제로 때문에, 그들은 898 00:48:51,020 --> 00:48:52,840 슬라이드가없는 이를 위해, 그래서 나는거야 899 00:48:52,840 --> 00:48:56,670 이 아니기 때문에 하나를 그립니다 아주 간단 당신이 한 번 900 00:48:56,670 --> 00:48:59,230 물건들을 치우는 시작합니다. 901 00:48:59,230 --> 00:49:03,920 스택 반면, 그래서 당신은 오직이 902 00:49:03,920 --> 00:49:08,920 크기가 무엇인지에 대해 걱정 시에 무언가를 추가하고, 903 00:49:08,920 --> 00:49:15,710 큐와 함께 당신은 또한 확인해야 머리가 차지되어 있는지, 904 00:49:15,710 --> 00:49:20,760 때문에 큐에 대한 좋은 점 입니다 당신이 용량으로하지 않으면, 905 00:49:20,760 --> 00:49:23,040 당신은 실제로는 줄 바꿈 할 수 있습니다. 906 00:49:23,040 --> 00:49:28,810 >> 좋아, 그럼 한 건 말인데 ... 오, 이 끔찍한 분필입니다. 907 00:49:28,810 --> 00:49:31,815 고려해야 할 한 가지 경우입니다. 908 00:49:31,815 --> 00:49:35,514 909 00:49:35,514 --> 00:49:37,140 우리는 단지 다섯을 다하겠습니다. 910 00:49:37,140 --> 00:49:41,810 OK, 그래서 우리는에 갈거야 머리가 여기에있다 말한다. 911 00:49:41,810 --> 00:49:46,140 이는 0, 1, 2, 3, 4이다. 912 00:49:46,140 --> 00:49:54,210 >> 머리가, 그리고 그들의 일을하시기 바랍니다. 913 00:49:54,210 --> 00:49:58,340 그리고 우리는 오른쪽에 뭔가를 추가하려면? 914 00:49:58,340 --> 00:50:01,170 그래서 일이 우리가 할 필요가 알은 헤드가 항상 있다는 915 00:50:01,170 --> 00:50:05,620 이 방법을 이동 가서 다음 루프 다시 주위에, OK? 916 00:50:05,620 --> 00:50:10,190 >> 그래서이 큐는 오른쪽 공간이? 917 00:50:10,190 --> 00:50:13,950 그것은 처음에 공간이 이것의 대향 가지. 918 00:50:13,950 --> 00:50:17,920 그래서 우리가해야 할 일을 우리는 꼬리를 계산해야합니다. 919 00:50:17,920 --> 00:50:20,530 당신은 알고 경우 머리를 이동하지 않은, 꼬리 920 00:50:20,530 --> 00:50:24,630 에서 당신의 배열 크기의 인덱스입니다. 921 00:50:24,630 --> 00:50:30,000 >> 그러나 현실에서, 당신은 큐를 사용하는 경우, 당신의 머리는 아마 업데이트 중입니다. 922 00:50:30,000 --> 00:50:33,890 그래서 당신이해야 할 것입니다 실제로 꼬리를 계산합니다. 923 00:50:33,890 --> 00:50:39,990 그래서 우리가 할 것은이 공식은 여기, 당신을 할거야하는 924 00:50:39,990 --> 00:50:42,680 들에 대해 생각하고, 우리는 그것에 대해 이야기 할 것입니다. 925 00:50:42,680 --> 00:50:49,567 926 00:50:49,567 --> 00:50:50,400 따라서이 용량이다. 927 00:50:50,400 --> 00:50:55,890 928 00:50:55,890 --> 00:50:59,660 >> 그래서이 실제로 것 당신이 그것을 할 수있는 방법을 제공합니다. 929 00:50:59,660 --> 00:51:03,205 930 00:51:03,205 --> 00:51:04,330 이 때문에 경우에, 무엇을? 931 00:51:04,330 --> 00:51:09,205 우리의 머리는 1, 우리의 크기는 4입니다. 932 00:51:09,205 --> 00:51:11,760 933 00:51:11,760 --> 00:51:18,490 우리는 5 그 모드 (mod) 경우, 우리는 0을 얻을, 이는 어디 우리가 입력해야합니다. 934 00:51:18,490 --> 00:51:23,320 935 00:51:23,320 --> 00:51:26,080 >> 그럼 다음의 경우에, 우리는이 작업을 수행하는 경우, 936 00:51:26,080 --> 00:51:33,390 우리는 좋아, 뭔가를 큐에서 제거하자 말한다. 937 00:51:33,390 --> 00:51:34,390 우리는이를 큐에서 제거. 938 00:51:34,390 --> 00:51:37,740 우리는 바로이 요소를 꺼내? 939 00:51:37,740 --> 00:51:47,930 >> 그리고 지금 우리의 머리는, 여기 가리키는 우리는 다른 일에 추가 할. 940 00:51:47,930 --> 00:51:52,470 이것은 기본적이며 다시 우리 라인의 오른쪽? 941 00:51:52,470 --> 00:51:55,450 큐는 배열 감싸는 할 수 있습니다. 942 00:51:55,450 --> 00:51:57,310 즉, 주된 차이점 중 하나입니다. 943 00:51:57,310 --> 00:51:58,780 스택, 당신은이 작업을 수행 할 수 없습니다. 944 00:51:58,780 --> 00:52:01,140 >> 큐, 당신은 할 수 모든 문제 때문에 945 00:52:01,140 --> 00:52:03,940 당신이 알고있는 것이 무엇인지 가장 최근에 추가되었습니다. 946 00:52:03,940 --> 00:52:10,650 모든 추가 될 것입니다 때문에 이 좌측 방향,이 경우, 947 00:52:10,650 --> 00:52:16,480 다음 줄 바꿈을 수행 할 수 있습니다 새로운 요소에 넣어 계속 948 00:52:16,480 --> 00:52:18,830 배열의 전면에 정말 아니기 때문에 949 00:52:18,830 --> 00:52:20,640 이상 배열 전면. 950 00:52:20,640 --> 00:52:26,320 당신의 시작을 생각할 수 당신의 머리가 실제로 어디에 배열입니다. 951 00:52:26,320 --> 00:52:29,710 >> 그래서이 공식은 어떻게 당신은 당신의 꼬리를 계산합니다. 952 00:52:29,710 --> 00:52:32,780 953 00:52:32,780 --> 00:52:35,610 그 의미가 있습니까? 954 00:52:35,610 --> 00:52:36,110 확인을 클릭합니다. 955 00:52:36,110 --> 00:52:39,400 956 00:52:39,400 --> 00:52:44,040 OK, 대기열에서 제외하고 너희들은 10 분을 957 00:52:44,040 --> 00:52:48,840 나에게 명확히 질문을합니다 내가 미친 알고 있기 때문에 당신은 할 수 있습니다. 958 00:52:48,840 --> 00:52:51,980 >> 같은 전부다 ... 너무 좋아요 너희들이 발견 있을지 몰라 959 00:52:51,980 --> 00:52:53,450 하지만 CS는 모든 패턴에 관한 것입니다. 960 00:52:53,450 --> 00:52:57,370 상황이 꽤 많이입니다 단지 작은 비틀기와, 같은. 961 00:52:57,370 --> 00:52:58,950 여기 그래서 같은 일. 962 00:52:58,950 --> 00:53:04,040 우리는 만약 우리가 실제로 볼 수 확인해야 바로 우리 큐에 뭔가를 가지고? 963 00:53:04,040 --> 00:53:05,960 OK, 0보다 우리의 크기가 큰 경우, 말? 964 00:53:05,960 --> 00:53:06,730 쿨. 965 00:53:06,730 --> 00:53:10,690 >> 우리가 할 경우, 우리는 우리의 머리를 이동하는 난 그냥 여기에 입증하는 것입니다. 966 00:53:10,690 --> 00:53:13,870 우리는 하나의 이상으로 우리의 머리를 업데이트합니다. 967 00:53:13,870 --> 00:53:18,390 그리고 우리는 우리의 감소 크기와 요소를 반환합니다. 968 00:53:18,390 --> 00:53:21,000 969 00:53:21,000 --> 00:53:26,250 >> 더 많은 콘크리트가 study.cs50.net에 코드, 970 00:53:26,250 --> 00:53:29,440 나는 매우가는 것이 좋습니다 당신이 시간이 있다면 그것을 통해, 971 00:53:29,440 --> 00:53:30,980 심지어 그냥 의사 코드의 경우. 972 00:53:30,980 --> 00:53:35,980 그리고 당신들을 통해 이야기하려는 경우 나 하나 하나에 함께하겠습니다하시기 바랍니다 973 00:53:35,980 --> 00:53:37,500 알고있다. 974 00:53:37,500 --> 00:53:38,770 나는 행복 할 것입니다. 975 00:53:38,770 --> 00:53:42,720 데이터 구조, 만약 당신이 CS (124)을, 당신은거야 976 00:53:42,720 --> 00:53:47,830 데이터 구조가 매우 얻을 알고 재미 있고 이것은 단지 시작했다. 977 00:53:47,830 --> 00:53:50,350 >> 그래서 나는 그것이 어려운 알고있다. 978 00:53:50,350 --> 00:53:51,300 괜찮아요. 979 00:53:51,300 --> 00:53:52,410 우리는 투쟁. 980 00:53:52,410 --> 00:53:53,630 나는 아직도. 981 00:53:53,630 --> 00:53:56,660 그래서 그것에 대해 너무 많이 걱정하지 마십시오. 982 00:53:56,660 --> 00:54:02,390 >> 그러나 그것은 기본적으로 당신입니다 데이터 구조 과정을 충돌. 983 00:54:02,390 --> 00:54:03,400 나는 많이 알고있다. 984 00:54:03,400 --> 00:54:06,860 거기에 아무것도 그 우리 또 다시 가고 싶은? 985 00:54:06,860 --> 00:54:09,400 우리는을 통해 얘기하고 싶지 없나? 986 00:54:09,400 --> 00:54:10,060 네? 987 00:54:10,060 --> 00:54:16,525 >> 청중 : 그 예를 들어, 그래서 새 꼬리는 그 이상 0에? 988 00:54:16,525 --> 00:54:17,150 스피커 1 : 네. 989 00:54:17,150 --> 00:54:18,230 청중 : OK. 990 00:54:18,230 --> 00:54:24,220 그래서 그 다음을 통해 진행 당신이 1 더하기 4에 올이 것 991 00:54:24,220 --> 00:54:27,671 >> 스피커 1 : 그래서 당신은 말을했다 우리가 가고 싶어 할 때 다시이 작업을 수행? 992 00:54:27,671 --> 00:54:28,296 청중 : 네. 993 00:54:28,296 --> 00:54:38,290 당신 내밀면 파악되면 이에 어디 있는지 그의에서 꼬리를 계산? 994 00:54:38,290 --> 00:54:44,260 >> 스피커 1 : 그래서 꼬리 나는이 변경 받이었다. 995 00:54:44,260 --> 00:54:52,010 그래서 여기에이 예에서,이이었다 우리가 확인,보고있는 배열? 996 00:54:52,010 --> 00:54:54,670 그래서 우리는 1, 2, 3, 4 가지가있다. 997 00:54:54,670 --> 00:55:05,850 그래서 우리는 우리의 머리에서 1과 동일해야 이 점은, 우리의 크기는 4와 동일 998 00:55:05,850 --> 00:55:07,050 이 시점에서, 맞죠? 999 00:55:07,050 --> 00:55:08,960 >> 여러분 모두가 그런 경우 동의? 1000 00:55:08,960 --> 00:55:14,620 그래서 우리는 머리 플러스 크기를 수행하는 우리에게 5를 제공하고, 우리는 5 모드 (mod). 1001 00:55:14,620 --> 00:55:20,690 우리는 0 인 것을 우리에게 알려줍니다, 0을 얻을 여기서 우리가 공간이 우리의 꼬리이다. 1002 00:55:20,690 --> 00:55:22,010 >> 청중 : 모자는 무엇입니까? 1003 00:55:22,010 --> 00:55:23,520 >> 스피커 1 : 용량. 1004 00:55:23,520 --> 00:55:24,020 미안 해요. 1005 00:55:24,020 --> 00:55:29,640 그래서 배열의 크기입니다. 1006 00:55:29,640 --> 00:55:35,210 1007 00:55:35,210 --> 00:55:36,047 네? 1008 00:55:36,047 --> 00:55:39,210 >> 청중 : [들리지] 전 우리는 요소를 반환? 1009 00:55:39,210 --> 00:55:46,270 >> 스피커 1 : 그래서 우리는 이동 머리 또는 순간을 반환? 1010 00:55:46,270 --> 00:55:52,680 우리가 하나를 이동한다면, 크기를 감소? 1011 00:55:52,680 --> 00:55:54,150 기다려. 1012 00:55:54,150 --> 00:55:55,770 나는 확실히 다른를 잊어 버렸습니다. 1013 00:55:55,770 --> 00:56:00,646 1014 00:56:00,646 --> 00:56:01,990 신경 쓰지 마. 1015 00:56:01,990 --> 00:56:04,980 또 다른 공식은 없습니다. 1016 00:56:04,980 --> 00:56:09,980 그래, 당신은 반환 할 것 머리 한 다음 다시 이동합니다. 1017 00:56:09,980 --> 00:56:13,270 >> 청중 : OK,이 때문에시 점, 머리는, 0에 있었다 1018 00:56:13,270 --> 00:56:18,452 그리고 당신은 반환 할 인덱스 0 다음 머리 1 - 1? 1019 00:56:18,452 --> 00:56:19,870 >> 스피커 1 : 맞아요. 1020 00:56:19,870 --> 00:56:22,820 나는 다른 있다고 생각 이 같은의 공식 종류. 1021 00:56:22,820 --> 00:56:26,970 I는 다음과 같이 상단에 내 머리를 가지고 있지 않습니다 나는 당신에게 잘못을주고 싶지 않습니다. 1022 00:56:26,970 --> 00:56:35,470 하지만 그것은 완벽하게 유효한 것 같아요 말하자면, OK,이 element--를 저장하는 어떤 1023 00:56:35,470 --> 00:56:40,759 머리의 요소는 감소는 ... 당신의 크기는 당신의 머리를 통해 이동 및 반환 1024 00:56:40,759 --> 00:56:41,800 즉 어떤 요소이다. 1025 00:56:41,800 --> 00:56:44,760 즉 완벽하게 유효합니다. 1026 00:56:44,760 --> 00:56:45,260 확인을 클릭합니다. 1027 00:56:45,260 --> 00:56:48,360 1028 00:56:48,360 --> 00:56:53,560 이가 아닌 것 같아 그게 ...처럼 당신은 아니에요 1029 00:56:53,560 --> 00:56:55,740 여기서 걸어 갈 같은, 그래, 내가 시도를 알고있다. 1030 00:56:55,740 --> 00:56:56,880 나는 모든 것을 얻었다. 1031 00:56:56,880 --> 00:56:57,670 그건 괜찮아요. 1032 00:56:57,670 --> 00:57:00,200 나는 약속드립니다. 1033 00:57:00,200 --> 00:57:05,240 그러나 데이터 구조는 무엇인가됩니다 그것은 많은 시간에 익숙해 걸립니다. 1034 00:57:05,240 --> 00:57:10,010 가장 어려운 아마 하나 일, 나는 과정에서, 생각합니다. 1035 00:57:10,010 --> 00:57:15,330 >> 그래서 확실히한다 반복과 먹어 본 난을 찾고 1036 00:57:15,330 --> 00:57:20,050 정말 연결리스트를 몰랐다 나는 그들과 함께 너무 많이했다 때까지, 1037 00:57:20,050 --> 00:57:22,550 그 같은 방식으로 나는하지 않았다 정말 포인터를 이해 1038 00:57:22,550 --> 00:57:27,040 내가 먹어 본 때까지 두 그것을 가르 칠 년은 내 자신의 Pset을한다. 1039 00:57:27,040 --> 00:57:28,990 그것은 반복하고 시간이 많이 걸린다. 1040 00:57:28,990 --> 00:57:32,600 그리고 결국, 그것은 종류의를 클릭합니다. 1041 00:57:32,600 --> 00:57:36,320 >> 그러나 그 사이에, 당신은 어떤이있는 경우 높은 수준의 이해의 어떤 1042 00:57:36,320 --> 00:57:39,321 이들은 자신의 장점을 수행 무엇을 어떤 cons-- 1043 00:57:39,321 --> 00:57:41,820 우리가 정말 강조하는 경향이있다, 특히 인트로 과정에서. 1044 00:57:41,820 --> 00:57:45,511 마찬가지로, 우리는 왜 사용합니다 배열을 시도? 1045 00:57:45,511 --> 00:57:48,010 마찬가지로, 긍정적 인은 무엇인가 그 각각의 네거티브? 1046 00:57:48,010 --> 00:57:51,610 >> 그리고 트레이드 오프를 이해 이들 구조들 각각 사이 1047 00:57:51,610 --> 00:57:54,910 지금은 훨씬 더 중요한 것입니다. 1048 00:57:54,910 --> 00:57:58,140 미친있을 수 있습니다 의 질문 또는 두 개의 1049 00:57:58,140 --> 00:58:03,710 푸시를 구현하도록 요구하는 것 또는 팝업 또는 대기열 및 대기열에서 제외를 구현한다. 1050 00:58:03,710 --> 00:58:07,340 그러나 대부분의 경우, 그 데 높은 수준의 이해와 더 1051 00:58:07,340 --> 00:58:09,710 직관적 인 이해는된다 사실보다 더 중요 1052 00:58:09,710 --> 00:58:11,250 이를 구현할 수있는. 1053 00:58:11,250 --> 00:58:14,880 >> 정말 멋진 것 당신의 모든 경우 나가서 시도를 구현 갈 수있다, 1054 00:58:14,880 --> 00:58:19,720 하지만 우리는 반드시이 아니다 이해 지금 가장 합리적인 것. 1055 00:58:19,720 --> 00:58:23,370 그러나 당신은 당신이 원하는 경우에, 당신의 pset에서 할 수 있습니다 에, 다음 연습을 얻을 것이다, 1056 00:58:23,370 --> 00:58:27,200 그리고 아마 당신은거야 정말 이해합니다. 1057 00:58:27,200 --> 00:58:27,940 네? 1058 00:58:27,940 --> 00:58:30,440 >> 청중 : 사람이 확인되는 있도록 우리는 PSET에서 사용하는 의미? 1059 00:58:30,440 --> 00:58:31,916 나는 그들 중 하나를 사용해야합니까? 1060 00:58:31,916 --> 00:58:32,540 스피커 1 : 네. 1061 00:58:32,540 --> 00:58:34,199 그럼 당신은 선택의 여지가. 1062 00:58:34,199 --> 00:58:36,740 내가, 우리가 할 수있는이 경우 추측 PSET 조금 이야기 1063 00:58:36,740 --> 00:58:40,480 나는이 통과했기 때문이다. 1064 00:58:40,480 --> 00:58:47,779 당신의 PSET에 그래서, 당신은 당신이 시도 또는 해시 테이블의 선택. 1065 00:58:47,779 --> 00:58:49,570 어떤 사람들은 시도 할 것이다 와, 꽃 필터를 사용하여 1066 00:58:49,570 --> 00:58:51,840 하지만 사람들은 기술적으로 정확하지 않습니다. 1067 00:58:51,840 --> 00:58:55,804 때문에 확률 적 성격의, 그들은 때로는 잘못된 반응을 제공합니다. 1068 00:58:55,804 --> 00:58:57,095 그들은 비록에 근사하고 있습니다. 1069 00:58:57,095 --> 00:58:59,030 고보고 추천 그들에 적어도. 1070 00:58:59,030 --> 00:59:03,260 그러나 당신은 당신의 선택의 여지가 해시 테이블과 시도 사이. 1071 00:59:03,260 --> 00:59:06,660 그리고 그 곳이 될 것 당신은 당신의 사전에로드합니다. 1072 00:59:06,660 --> 00:59:09,230 >> 그리고 당신은 선택해야합니다 하여 해시 함수 1073 00:59:09,230 --> 00:59:13,420 당신은 얼마나 많은 선택해야합니다 당신이 양동이, 그것은 다릅니다. 1074 00:59:13,420 --> 00:59:17,440 당신이 더 많은 버킷이있는 경우처럼, 어쩌면 더 빨리 실행됩니다. 1075 00:59:17,440 --> 00:59:22,790 하지만 어쩌면 당신은 낭비하는거야 공간을 많이하지만 그런 식으로. 1076 00:59:22,790 --> 00:59:26,320 당신은 그것을 파악해야합니다. 1077 00:59:26,320 --> 00:59:27,140 음 .....? 1078 00:59:27,140 --> 00:59:29,875 >> 청중 : 당신은 그 전에 말했다 우리는 다른 해시 함수를 사용하여, 1079 00:59:29,875 --> 00:59:31,750 우리는 할 필요가 없습니다 해시 함수를 생성? 1080 00:59:31,750 --> 00:59:32,666 >> 스피커 1 : 오른쪽, 예. 1081 00:59:32,666 --> 00:59:38,150 그래서 말 그대로 해시 함수, 구글과 같은 "해시 함수" 1082 00:59:38,150 --> 00:59:40,770 그리고 멋진 사람을 찾습니다. 1083 00:59:40,770 --> 00:59:43,250 당신은 구축 할 것으로 예상되지 않습니다 자신의 해시 함수. 1084 00:59:43,250 --> 00:59:46,100 사람들은 자신의 지출 이러한 것들에 대한 논문. 1085 00:59:46,100 --> 00:59:50,250 >> 그래서 자신의 건물에 대해 걱정하지 마십시오. 1086 00:59:50,250 --> 00:59:53,350 시작하는 하나의 온라인을 찾습니다. 1087 00:59:53,350 --> 00:59:56,120 그들 중 일부는 당신에있다 약간의 조작 1088 00:59:56,120 --> 00:59:59,430 수 있도록해야합니다 반환 형식이 일치 그리고 이것 저것, 처음에 그렇게, 1089 00:59:59,430 --> 01:00:02,420 내가 뭔가를 사용하는 것이 좋습니다 것입니다 정말 쉽게 어쩌면 단지 1090 01:00:02,420 --> 01:00:04,680 첫 글자에 해시. 1091 01:00:04,680 --> 01:00:08,760 그리고 그 작업이 있으면, 냉각기 해시 함수를 통합. 1092 01:00:08,760 --> 01:00:09,260 음 .....? 1093 01:00:09,260 --> 01:00:13,020 >> 청중 : 노력할 것이라고하는 일 또는 효율적인하지만,이었다고 나할까요 그냥 열심히 1094 01:00:13,020 --> 01:00:15,880 >> 스피커 1 : 그래서 시도, 나는 생각 구현하기가 직관적으로 어렵다 1095 01:00:15,880 --> 01:00:18,310 하지만 매우 빠릅니다. 1096 01:00:18,310 --> 01:00:20,620 그러나, 더 많은 공간을 차지합니다. 1097 01:00:20,620 --> 01:00:25,270 다시 말하지만, 당신은 이들 모두를 최적화 할 수 있습니다 다른 방법과 방법이 있습니다 난 ... 1098 01:00:25,270 --> 01:00:26,770 청중 : 우리는 어떻게이에 등급을 매긴다? 1099 01:00:26,770 --> 01:00:27,540 그것은 문제가 .. 않습니다 1100 01:00:27,540 --> 01:00:29,164 >> 스피커 1 : 그래서 당신은 정상적인 방법으로 등급 화하고 있습니다. 1101 01:00:29,164 --> 01:00:31,330 당신은 디자인에 등급이 될 것입니다. 1102 01:00:31,330 --> 01:00:36,020 그렇다면 당신이 방법, 당신이 원하는 그것이 될 수있는이 같은 우아 확인 1103 01:00:36,020 --> 01:00:38,610 및 효율적인 것이 될 수있다. 1104 01:00:38,610 --> 01:00:41,950 하지만 당신은 시도 또는 해시를 선택하는 경우 테이블, 한 작동으로, 1105 01:00:41,950 --> 01:00:45,350 우리는 그와 행복. 1106 01:00:45,350 --> 01:00:48,370 당신이 뭔가를 사용하는 경우 그리고 그 해시 첫 글자, 즉, 괜찮아요 1107 01:00:48,370 --> 01:00:51,410 같은 어쩌면 디자인이 많다는있다. 1108 01:00:51,410 --> 01:00:53,410 우리는 또한 도달하고 이 semester-- 포인트 1109 01:00:53,410 --> 01:00:55,340 나도 몰라 당신 경우 당신이 있다면 noticed--들 1110 01:00:55,340 --> 01:00:58,780 PSET 등급은 약간 감소 때문에 디자인과 이것 저것의, 1111 01:00:58,780 --> 01:00:59,900 그것은 완벽하게 괜찮아요. 1112 01:00:59,900 --> 01:01:02,960 이 점에 점점 어디를 프로그램은 더 복잡지고있다. 1113 01:01:02,960 --> 01:01:04,830 더 많은 장소가있다 당신은에 향상시킬 수 있습니다. 1114 01:01:04,830 --> 01:01:06,370 >> 그래서 완벽하게 정상입니다. 1115 01:01:06,370 --> 01:01:08,810 그것은 당신이 걸 아니다 당신의 pset에 나쁜 일을. 1116 01:01:08,810 --> 01:01:11,885 그것은 단지 우리는 지금 당신을 더 열심히 당하고있다. 1117 01:01:11,885 --> 01:01:13,732 그래서 모든 사람이 그것을 느끼고. 1118 01:01:13,732 --> 01:01:14,940 난 그냥 모든 psets를 등급 화. 1119 01:01:14,940 --> 01:01:16,490 나는 모두가 그것을 느끼고 알고있다. 1120 01:01:16,490 --> 01:01:19,600 >> 그래서 그것에 대해 걱정하지 마십시오. 1121 01:01:19,600 --> 01:01:23,580 그리고 당신은에 대한 질문이있는 경우 이전의 Pset 또는 개선 할 수있는 방법, 1122 01:01:23,580 --> 01:01:27,760 나는 시도하고 특정 주석 장소,하지만 때로는 늦었 1123 01:01:27,760 --> 01:01:30,840 나는 피곤. 1124 01:01:30,840 --> 01:01:34,885 다른 일이있다 약 데이터 구조? 1125 01:01:34,885 --> 01:01:37,510 난 너희들이 정말하지 않습니다 확신 해요 더 이상 그들에 대해 얘기하고 싶어, 1126 01:01:37,510 --> 01:01:42,650 가있는 경우에, 나는 행복 해요 아무것도뿐만 아니라, 그들을 이동 1127 01:01:42,650 --> 01:01:45,580 강연이 과거 주 또는 마지막 주. 1128 01:01:45,580 --> 01:01:51,580 >> 나는 그래서, 지난 주 모든 리뷰 있었는지 우리는 몇 가지 검토를 건너 뛸 수도 있습니다 1129 01:01:51,580 --> 01:01:54,190 강의에서. 1130 01:01:54,190 --> 01:01:58,230 내가 대답 할 수있는 다른 질문? 1131 01:01:58,230 --> 01:01:59,350 좋아, 좋아. 1132 01:01:59,350 --> 01:02:02,400 그럼, 너희들은 15 분 일찍 나가. 1133 01:02:02,400 --> 01:02:08,370 >> 나는이 적어도 반 도움이되었습니다 바랍니다 나는 다음 주에 너희들을 볼 수 있습니다, 1134 01:02:08,370 --> 01:02:12,150 또는 목요일 근무 시간. 1135 01:02:12,150 --> 01:02:15,285 간식이 요청입니다 다음 주, 그것은 것입니다? 1136 01:02:15,285 --> 01:02:17,459 오늘 사탕을 잊었 때문입니다. 1137 01:02:17,459 --> 01:02:19,750 그리고 마지막 사탕을 가져 주이지만, 콜럼버스의 날이었다 1138 01:02:19,750 --> 01:02:25,400 그래서 육명 같이 있었다 사람 자신에게 사탕의 네 개의 가방을 가지고 있었다. 1139 01:02:25,400 --> 01:02:28,820 나는 육각형을 가져올 수 당신이 좋아 다시합니다. 1140 01:02:28,820 --> 01:02:29,580 육각형? 1141 01:02:29,580 --> 01:02:32,250 OK, 좋은 소리. 1142 01:02:32,250 --> 01:02:35,050 , 좋은 하루들 되세요. 1143 01:02:35,050 --> 01:02:39,510