ಡೌಗ್ LLOYD: ಆದ್ದರಿಂದ CS50 ರಲ್ಲಿ, ನಾವು ಒಳಗೊಂಡಿದೆ ಬಂದಿದೆ ವಿವಿಧ ದತ್ತಾಂಶ ರಚನೆಗಳಲ್ಲಿ ಸಾಕಷ್ಟು ಬಲ? ನಾವು ರಚನೆಗಳು ಕಾಣಬಹುದು, ಮತ್ತು ಲಿಂಕ್ ಮಾಡಿದ ಪಟ್ಟಿಗಳು, ಮತ್ತು ಹ್ಯಾಶ್ ಕೋಷ್ಟಕಗಳು ಮತ್ತು ಪ್ರಯತ್ನಿಸುತ್ತದೆ, ರಾಶಿಯನ್ನು ಮತ್ತು ಸಾಲುಗಳನ್ನು. ನಾವು ಸ್ವಲ್ಪ ತಿಳಿಯುವಿರಿ ಮರಗಳು ರಾಶಿಗಳನ್ನು ಬಗ್ಗೆ, ಆದರೆ ನಿಜವಾಗಿಯೂ ಈ ಎಲ್ಲಾ ಕೇವಲ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಅಪ್ ಒಂದು ಥೀಮ್ ಮಾರ್ಪಾಟುಗಳನ್ನು ಎಂಬ. ನಿಜವಾಗಿಯೂ ಇವೆ ಈ ನಾಲ್ಕು ಮೂಲಭೂತ ವಿಚಾರಗಳ ರೀತಿಯ ಬೇರೆ ಎಲ್ಲವೂ ಕೆಳಗೆ ಕುದಿ ಮಾಡಬಹುದು. ಅರೆಸ್, ಸಂಬಂಧಿತ ಪಟ್ಟಿಗಳನ್ನು ಹ್ಯಾಶ್ ಕೋಷ್ಟಕಗಳು ಮತ್ತು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಮತ್ತು ಹಾಗೆ ನಾನು ಹೇಳಿದರು ಅವುಗಳ ಮೇಲೆ ಬದಲಾವಣೆಗಳು, ಆದರೆ ಈ ಸುಂದರಿ ಹೆಚ್ಚು ಸಾರಾಂಶ ಹೋಗುವ ಎಲ್ಲವೂ ನಾವು ಮಾತನಾಡಲು ಹೊರಟಿರುವೆ ಸಿ ವಿಷಯದಲ್ಲಿ ಈ ವರ್ಗ ಬಗ್ಗೆ ಆದರೆ ಹೇಗೆ ಈ ಬಲ, ಎಲ್ಲಾ ಅಳತೆ ಅಪ್ ಮಾಡಲು? ನಾವು ಬಾಧಕಗಳನ್ನು ಕುರಿತು ಬಂದಿದೆ ಅವುಗಳ ಮೇಲೆ ಪ್ರತ್ಯೇಕ ವೀಡಿಯೊಗಳನ್ನು ಪ್ರತಿಯೊಂದು, ಆದರೆ ಸಂಖ್ಯೆಗಳ ಬಹಳಷ್ಟು ಇಲ್ಲ ಸುಮಾರು ಎಸೆದ ಸಿಲುಕುವ. ಸಾಮಾನ್ಯ ಬಹಳಷ್ಟು ಇಲ್ಲ ಆಲೋಚನೆಗಳು ಸುಮಾರು ಎಸೆದ ಸಿಲುಕುವ. ಅವರ ಪ್ರಯತ್ನಿಸಿ ಮತ್ತು ಕ್ರೋಢೀಕರಿಸಲು ಅವಕಾಶ ಇದು ಕೇವಲ ಒಂದು ಸ್ಥಳದಲ್ಲಿ. ನ ವಿರುದ್ಧ ಸಾಧಕ ತೂಕ ಲೆಟ್ ಬಾಧಕಗಳ ಮತ್ತು ಪರಿಗಣಿಸಲು ಇದು ಅಕ್ಷಾಂಶ ರಚನೆ ಸರಿಯಾದ ಮಾಹಿತಿ ಇರಬಹುದು ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಸನ್ನಿವೇಶದ ರಚನೆ, ಡೇಟಾ ಯಾವುದೇ ರೀತಿಯ ಸಂಗ್ರಹಿಸಲು ನೀವು. ನೀವು ಯಾವಾಗಲೂ ಅಗತ್ಯವಿಲ್ಲ ಸೂಪರ್ ಫಾಸ್ಟ್ ಅಳವಡಿಕೆ, ಅಳಿಸಿದ ಬಳಸಲು ಒಂದು trie ಮತ್ತು ವೀಕ್ಷಣ ನೀವು ನಿಜವಾಗಿಯೂ ಸೇರಿಸುವ ಮತ್ತು ಅಳಿಸುವುದು ಬಗ್ಗೆ ಹೆದರುವುದಿಲ್ಲ ತುಂಬಾ. ನೀವು ತ್ವರಿತವಾಗಿ ಯಾದೃಚ್ಛಿಕ ಬೇಕಾದರೆ ಪ್ರವೇಶ, ಬಹುಶಃ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಉತ್ತಮ. ಇದರಿಂದ ಆ ಗಿಸಿ ಅವಕಾಶ. ನಾಲ್ಕು ಪ್ರತಿ ಬಗ್ಗೆ ಮಾತನಾಡೋಣ ದತ್ತಾಂಶ ರಚನೆಗಳಲ್ಲಿ ಪ್ರಮುಖ ರೀತಿಯ ನಾವು ಕುರಿತು, ಮತ್ತು ಎಂಬುದನ್ನು ಅವರು ಉತ್ತಮ ಇರಬಹುದು ನೋಡಿ, ಮತ್ತು ಅವರು ಉತ್ತಮ ಇರಬಹುದು. ಆದ್ದರಿಂದ ಅವರ ರಚನೆಗಳು ಆರಂಭಿಸೋಣ. ಅಳವಡಿಕೆ ಆದ್ದರಿಂದ, ಆ ರೀತಿಯ ಹಾನಿಕಾರಕ. ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಕೊನೆಯಲ್ಲಿ ಅಳವಡಿಕೆ, ಸರಿ ನಾವು ಹೋಗಿ ಎಂದು ನಾವು ಒಂದು ಶ್ರೇಣಿಯನ್ನು ನಿರ್ಮಿಸಲು ಬಳಸುತ್ತಿದ್ದರೆ. ಆದರೆ ನಾವು ಸೇರಿಸಲು ಅಗತ್ಯವಿದ್ದರೆ ಮಧ್ಯಮ ಅಂಶಗಳನ್ನು, ಅಳವಡಿಕೆ ಮತ್ತೆ ಆಲೋಚಿಸುತ್ತೀರಿ ರೀತಿಯ, ಸಾಕಷ್ಟು ಇಲ್ಲ ಅಲ್ಲಿ ಒಂದು ಅಂಶ ಹೊಂದಿಕೊಳ್ಳಲು ಬದಲಾಯಿಸುವ. ಮತ್ತು ನಾವು ಸೇರಿಸಲು ನೀನು ಹಾಗಾಗಿ ಎಲ್ಲಿಯಾದರೂ ಆದರೆ ರಚನೆಯ ಕೊನೆಯ ಬಹುಶಃ ಆದ್ದರಿಂದ ಮಹಾನ್ ಅಲ್ಲ. ಹಾಗೆಯೇ, ಅಳಿಸುವಿಕೆಗೆ, ಹೊರತು ನಾವು ಆರ್ ಒಂದು ರಚನೆಯ ಕೊನೆಯ ಅಳಿಸುವುದು, ಬಹುಶಃ ಆದ್ದರಿಂದ ಮಹಾನ್ ಅಲ್ಲ ನಾವು ಖಾಲಿ ಅಂತರವನ್ನು ಬಿಟ್ಟು ಬಯಸುವುದಿಲ್ಲ, ಸಾಮಾನ್ಯವಾಗಿ ನಾವು ಮಾಡುವುದಿಲ್ಲ. ನಾವು ಒಂದು ಅಂಶ ತೆಗೆದುಹಾಕಲು ಬಯಸುವ, ಮತ್ತು ತದನಂತರ ರೀತಿಯ ಮತ್ತೆ ಅನುಕೂಲವಾಗಿರುವ ಮಾಡಲು. ಆದ್ದರಿಂದ ಮೂಲಾಂಶಗಳನ್ನು ಅಳಿಸುವುದು ಒಂದು ಶ್ರೇಣಿಯನ್ನು, ಆದ್ದರಿಂದ ಮಹಾನ್ ಅಲ್ಲ. ನೋಡು, ಆದರೂ, ಅದ್ಭುತವಾಗಿದೆ. ನಾವು ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತದೆ, ನಿರಂತರ ಸಮಯದಲ್ಲಿ ವೀಕ್ಷಣ. ನಾವು ಕೇವಲ ಏಳು ಹೇಳುತ್ತಾರೆ, ಮತ್ತು ನಾವು ಹೋಗಿ ಶ್ರೇಣಿಯನ್ನು ಸಾಮಾನು ಏಳು. ನಾವು ಹೋಗಿ 20 ಸೇ ಶ್ರೇಣಿಯನ್ನು ಸಾಮಾನು 20. ನಾವು ಅಡ್ಡಲಾಗಿ ತಿರುಗಿ ಹೊಂದಿಲ್ಲ. ಬಹಳ ಒಳ್ಳೆಯದು. ಅರೆಸ್ ವಿಂಗಡಿಸಲು ತುಲನಾತ್ಮಕವಾಗಿ ಸುಲಭ. ನಾವು ಒಂದು ಬೇರ್ಪಡಿಸುವ ಕುರಿತು ಪ್ರತಿ ಬಾರಿ ಇಂತಹ ಆಯ್ಕೆ ರೀತಿಯ ಎಂದು ಕ್ರಮಾವಳಿ, ಅಳವಡಿಕೆಯ ರೀತಿಯ, ಬಬಲ್ ರೀತಿಯ ವಿಲೀನಗೊಳ್ಳಲು ರೀತಿಯ, ನಾವು ಯಾವಾಗಲೂ ಅದನ್ನು ರಚನೆಗಳು ಬಳಸಲಾಗುತ್ತದೆ, ರಚನೆಗಳು ಬಹಳ ಸುಲಭ ಏಕೆಂದರೆ ಮಾಹಿತಿ ವಿನ್ಯಾಸಗಳನ್ನು ಸಂಬಂಧಿತವಾದ ರೀತಿಯ, ನಾವು ಇದುವರೆಗೆ ನೋಡಿದ. ಅವರು ತುಲನಾತ್ಮಕವಾಗಿ ಸಣ್ಣ ಆರ್. ಹೆಚ್ಚುವರಿ ಜಾಗವನ್ನು ಬಹಳಷ್ಟು ಇಲ್ಲ. ನೀವು ನಿಖರವಾಗಿ ಎಷ್ಟು ಬದಿಗಿಟ್ಟು ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಹಿಡಿದಿಡಲು ಅಗತ್ಯವಿದೆ ಎಂದು, ಮತ್ತು ಅದು ಬಹುಮಟ್ಟಿಗೆ ಇಲ್ಲಿದೆ. ಆದ್ದರಿಂದ ಅವರು ಬಹಳ ಸಣ್ಣ ಆರ್ ಮತ್ತು ಆ ರೀತಿಯಲ್ಲಿ ಪರಿಣಾಮಕಾರಿ. ಆದರೆ ಮತ್ತೊಂದು ಹಿನ್ನಡೆಯೆಂದರೆ, ಆದರೂ, ಅವು ಗಾತ್ರದಲ್ಲಿ ಸ್ಥಿರ ಮಾಡುತ್ತದೆ. ನಾವು ಎಂಬುದನ್ನು ಘೋಷಿಸಲು ದೊಡ್ಡ ನಾವು, ನಮ್ಮ ರಚನೆಯ ಬಯಸುತ್ತೇನೆ ಮತ್ತು ನಾವು ಮಾತ್ರ ಇದು ಒಂದು ಶಾಟ್ ಪಡೆಯಲು. ನಾವು ಬೆಳೆದು ಇದು ಕುಗ್ಗಿಸಿ ಮಾಡಬಹುದು. ನಾವು ಬೆಳೆಯುವ ಅಥವಾ ಕುಗ್ಗಲು ಬೇಕಾದರೆ, ನಾವು ಒಂದು ಸಂಪೂರ್ಣವಾಗಿ ಹೊಸ ಶ್ರೇಣಿಯನ್ನು ಘೋಷಿಸಲು ಅಗತ್ಯವಿದೆ, ಅಂಶಗಳ ಎಲ್ಲಾ ನಕಲಿಸಿ ಎರಡನೇ ರಚನೆಯ ಒಳಗೆ ಮೊದಲ ಸರಣಿ. ಮತ್ತು ನಾವು ಸರಕನ್ನು ನಿರೂಪಿಸುವಲ್ಲಿ ಎಡವಿದ್ದಾರೆ ವೇಳೆ ಸಮಯ, ನಾವು ಮತ್ತೆ ಅದನ್ನು ಮಾಡಬೇಕು. ಆದ್ದರಿಂದ ಮಹಾನ್ ಅಲ್ಲ. ಆದ್ದರಿಂದ ಸರಣಿಗಳ ನಮಗೆ ನಮ್ಯತೆ ನೀಡುವುದಿಲ್ಲ ಅಂಶಗಳನ್ನು ವೇರಿಯಬಲ್ ಸಂಖ್ಯೆಗಳ. ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿಯನ್ನು, ಅಳವಡಿಕೆ ಬಹಳ ಸುಲಭ. ನಾವು ಮುಂದೆ ಮೇಲೆ ಸ್ಪಂದನ. ಅಳಿಸುವಿಕೆಗೆ ಸಹ ಬಹಳ ಸುಲಭ. ನಾವು ಅಂಶಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಿದೆ. ಕೆಲವು ಶೋಧನೆ ಒಳಗೊಂಡಿರುತ್ತವೆ. ಆದರೆ ನೀವು ಅಂಶ ಕಂಡುಬಂದರೆ ಒಮ್ಮೆ ನೀವು ನೀವು ಮಾಡಬೇಕಾದ್ದು ಎಲ್ಲಾ ಹುಡುಕುತ್ತಿರುವ ಒಂದು ಪಾಯಿಂಟರ್ ಬದಲಾಯಿಸಬಹುದು, ಬಹುಶಃ ಎರಡು ನೀವು ಹೊಂದಿದ್ದರೆ ಒಂದು ದುಪ್ಪಟ್ಟು ಪಟ್ಟಿಯಲ್ಲಿ ಲಿಂಕ್ ಲಿಂಕ್ ಪಟ್ಟಿ, ಬದಲಿಗೆ ಮತ್ತು ನಂತರ ನೀವು ನೋಡ್ ಮುಕ್ತಗೊಳಿಸಲು. ನೀವು ವರ್ಗಾಯಿಸಲು ಇಲ್ಲ ಸುಮಾರು ಎಲ್ಲವನ್ನೂ. ನೀವು ಕೇವಲ ಎರಡು ಪಾಯಿಂಟರ್ಸ್ ಬದಲಾಯಿಸಲು ಆದ್ದರಿಂದ ಬಹಳ ಬೇಗ ಇದಾಗಿದೆ. ನೋಡು, ಆದರೂ ಕೆಟ್ಟ? ನಮಗೆ ಒಂದು ಹುಡುಕಲು ಸಲುವಾಗಿ ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿಯಲ್ಲಿ ಅಂಶ ಎಂಬುದನ್ನು ಒಂದೊಂದಾಗಿ ಅಥವಾ ದುಪ್ಪಟ್ಟು, ಲಿಂಕ್ ನಾವು ರೇಖೀಯ ಹುಡುಕಾಟ ಹೊಂದಿವೆ. ನಾವು ಆರಂಭದಲ್ಲಿ ಪ್ರಾರಂಭಿಸಬೇಕು ಮತ್ತು ಅಂತಿಮ ಚಲಿಸುತ್ತದೆ, ಅಥವಾ ಅಂತಿಮ ಚಲಿಸುತ್ತದೆ ಆರಂಭವಾಗುವುದು ಆರಂಭಕ್ಕೆ. ನಾವು ಎಂದಿಗೂ ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ. ನಾವು ಮಾಡುತ್ತಿರುವುದು ಆದ್ದರಿಂದ ಶೋಧನೆ ಬಹಳಷ್ಟು, ಬಹುಶಃ ಲಿಂಕ್ ಪಟ್ಟಿ ಅಲ್ಲ ನಮಗೆ ಅಷ್ಟೊಂದು ಉತ್ತಮ. ಅವರು ನಿಜವಾಗಿಯೂ ಕೂಡ ಆರ್ ವಿಂಗಡಿಸಲು ಕಷ್ಟ, ಬಲ? ಕೇವಲ ರೀತಿಯಲ್ಲಿ ನೀವು ನಿಜವಾಗಿಯೂ ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿಯಲ್ಲಿ ವಿಂಗಡಿಸಲು ನೀವು ನಿರ್ಮಿಸಲು ಎಂದು ವಿಂಗಡಿಸಲು. ಆದರೆ ನೀವು ಅದನ್ನು ವಿಂಗಡಿಸಲು ವೇಳೆ ಇದನ್ನು ನಿರ್ಮಿಸಲು, ನೀವು ಇನ್ನು ಮುಂದೆ ಆರ್ ಇನ್ನು ಮುಂದೆ ತ್ವರಿತ ಅಳವಡಿಕೆಗಳು ಮಾಡುವ. ನೀವು ಅದಕ್ಕೆ ದಾರ ಕಟ್ಟಬೇಕಾಗುತ್ತಿತ್ತು ಇಲ್ಲ ಮುಂದೆ ಮೇಲೆ ವಿಷಯಗಳನ್ನು. ನೀವು ಕಂಡುಹಿಡಿಯಬೇಕಿದೆ ಬಲ ಸ್ಪಾಟ್ ಹಾಕಿದರೆ, ತದನಂತರ ನಿಮ್ಮ ಅಳವಡಿಕೆ ಕೇವಲ ಬಗ್ಗೆ ಕೆಟ್ಟ ಆಗುತ್ತದೆ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಸೇರಿಸುವ. ಆದ್ದರಿಂದ ಲಿಂಕ್ ಪಟ್ಟಿಗಳನ್ನು ಅಲ್ಲ ಡೇಟಾ ವಿಂಗಡಿಸುವ ಬಹಳವೇ. ಅವರು ಸಾಕಷ್ಟು ಸಣ್ಣ, ಗಾತ್ರ ಬಲ್ಲ ಆರ್. ದುಪ್ಪಟ್ಟು ಸ್ವಲ್ಪ ಲಿಂಕ್ ಪಟ್ಟಿ ಒಂದೊಂದಾಗಿ ಲಿಂಕ್ ಪಟ್ಟಿಗಳನ್ನು ದೊಡ್ಡದಾಗಿದ್ದರೂ ಇದು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ದೊಡ್ಡದಾಗಿರುವ ರಚನೆಗಳು ಹೆಚ್ಚು, ಆದರೆ ಅಲ್ಲ ವ್ಯರ್ಥ ಜಾಗವನ್ನು ಒಂದು ಬೃಹತ್ ಪ್ರಮಾಣವನ್ನು. ಆದ್ದರಿಂದ ಜಾಗವನ್ನು ಪ್ರೀಮಿಯಂ, ಆದರೆ ಒಂದು ನಿಜವಾಗಿಯೂ ತೀವ್ರ ಪ್ರೀಮಿಯಂ, ಈ ಸಾಗಲು ದಾರಿ ಇರಬಹುದು. ಹ್ಯಾಶ್ ಕೋಷ್ಟಕಗಳು. ಒಂದು ಹ್ಯಾಶ್ ಕೋಷ್ಟಕದ ಸೇರಿಸುವುದಕ್ಕೆ ತಕ್ಕಮಟ್ಟಿಗೆ ನೇರವಾಗಿರುತ್ತದೆ. ಇದು ಎರಡು ಹಂತದ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ. ಮೊದಲ ನಾವು ಮೂಲಕ ನಮ್ಮ ದತ್ತಾಂಶದ ಚಲಿಸಬೇಕಾಗುತ್ತದೆ ಒಂದು ಹ್ಯಾಶ್ ಕ್ರಿಯೆ ಒಂದು ಹ್ಯಾಶ್ ಕೋಡ್ ಪಡೆಯಲು, ಮತ್ತು ನಾವು ಅಂಶ ಸೇರಿಸಲು ಆ ಹ್ಯಾಶ್ ಕೋಡ್ ಸ್ಥಳದಲ್ಲಿ ಹ್ಯಾಶ್ ಟೇಬಲ್. ಲಿಂಕ್ ಪಟ್ಟಿ ಇದೇ ಅಳಿಸುವಿಕೆಗೆ, ನೀವು ಅಂಶ ಹೇಗೆ ಒಮ್ಮೆ ಸುಲಭ. ನೀವು ಮೊದಲು ಕಂಡುಹಿಡಿಯಬೇಕಿದೆ ಆದರೆ ನಂತರ ನೀವು ತೆಗೆದುಹಾಕಿದಾಗ, ನೀವು ವಿನಿಮಯ ಅಗತ್ಯವಿದೆ ಪಾಯಿಂಟರ್ಸ್ ಒಂದೆರಡು ನೀವು ಪ್ರತ್ಯೇಕ ಸರಣಿ ಬಳಸುತ್ತಿದ್ದೀರಿ. ನೀವು ತನಿಖೆಯನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಅಥವಾ ನೀವು ಇಲ್ಲದಿದ್ದರೆ ಬಳಸಿಕೊಂಡು ಎಲ್ಲಾ ಸರಣಿ ನಿಮ್ಮ ಹ್ಯಾಶ್ ಕೋಷ್ಟಕದಲ್ಲಿ, ಅಳಿಸುವಿಕೆಗೆ ವಾಸ್ತವವಾಗಿ ನಿಜವಾಗಿಯೂ ಸುಲಭ. ನೀವು ಮಾಡಬೇಕಾದ್ದು ಎಲ್ಲಾ ಹ್ಯಾಶ್ ಆಗಿದೆ ಡೇಟಾ, ಮತ್ತು ಆ ಸ್ಥಳ ಹೋಗಿ. ಊಹಿಸಿಕೊಂಡು ನೀವು ಯಾವುದೇ ಘರ್ಷಣೆಗೆ ಹೊಂದಿವೆ ನೀವು ಬೇಗನೆ ಅಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಈಗ, ವೀಕ್ಷಣ ಅಲ್ಲಿ ವಿಷಯಗಳನ್ನು ಹೊಂದಿದೆ ಸ್ವಲ್ಪ ಸಂಕೀರ್ಣವಾದ ಪಡೆಯಿರಿ. ಇದು ಉತ್ತಮ ಸರಾಸರಿ ಇಲ್ಲಿದೆ ಲಿಂಕ್ ಪಟ್ಟಿಗಳನ್ನು ಹೆಚ್ಚು. ನೀವು ಸರಣಿ ಬಳಸುತ್ತಿದ್ದರೆ, ನೀವು ಇನ್ನೂ ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿಯಲ್ಲಿದ್ದಾರೆ, ಇದು ನೀವು ಇನ್ನೂ ಅರ್ಥ ಹುಡುಕಾಟ ಸಂಬಂಧಿಸಿದ ಪಟ್ಟಿಯ ಕೇಡು. ನೀವು ತೆಗೆದುಕೊಳ್ಳುವ ನೀವು ಏಕೆಂದರೆ ಆದರೆ ನಿಮ್ಮ ಲಿಂಕ್ ಪಟ್ಟಿ ಮತ್ತು 100 ಅಥವಾ 1,000 ಇದು ವಿಭಜಿಸುವ ಅಥವಾ n ನಿಮ್ಮ ಹ್ಯಾಶ್ ಕೋಷ್ಟಕದಲ್ಲಿ ಅಂಶಗಳನ್ನು, ನೀವು ಲಿಂಕ್ ಪಟ್ಟಿಗಳನ್ನು ಗಾತ್ರ ಎನ್ತ್ ಎಲ್ಲಾ ಒಂದು. ಅವರು ಎಲ್ಲಾ ಗಣನೀಯವಾಗಿ ಸಣ್ಣ ಆರ್. ನೀವು ಎನ್ ಬದಲಿಗೆ ಪಟ್ಟಿಗಳನ್ನು ಕಲ್ಪಿಸಿದ್ದಾರೆ ಗಾತ್ರ N ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿ. ಆದ್ದರಿಂದ ಈ ನೈಜ ಜಗತ್ತಿನ ನಿರಂತರ ಸಾಮಾನ್ಯವಾಗಿ ನಾವು ಇದು ಅಂಶವೆಂದರೆ ಸಮಯ ಸಂಕೀರ್ಣತೆಯ ಬಗ್ಗೆ ಮಾತಾಡುವುದಿಲ್ಲ, ಇದು ವಾಸ್ತವವಾಗಿ ಇಲ್ಲಿ ಒಂದು ವ್ಯತ್ಯಾಸ ಕಂಡು ಬರುತ್ತದೆ. ಆದ್ದರಿಂದ ವೀಕ್ಷಣ ಇನ್ನೂ ರೇಖೀಯ ನೀವು ಸರಣಿ ಬಳಸುತ್ತಿದ್ದರೆ, ಹುಡುಕು ಆದರೆ ಪಟ್ಟಿಯ ಉದ್ದ ನೀವು ಮೂಲಕ ಹುಡುಕುತ್ತಿರುವ ಹೋಲಿಸಿದಾಗ ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ. ಮತ್ತೆ, ಬೇರ್ಪಡಿಸುವ ನಿಮ್ಮ ವೇಳೆ ಇಲ್ಲಿ ಗೋಲು, ಹ್ಯಾಶ್ ಟೇಬಲ್ ನ ಬಹುಶಃ ಸರಿಯಾದ ರೀತಿಯಲ್ಲಿ ಹೋಗಲು. ವಿಂಗಡಿಸುವ ವೇಳೆ ಕೇವಲ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಬಳಸುತ್ತವೆ ನೀವು ನಿಜವಾಗಿಯೂ ಮುಖ್ಯ. ಅವರು ಗಾತ್ರ ಹರವು ಮಾಡಬಹುದು. ಇದು ಒಂದು ಎಂದು ಹೇಳಲು ಕಷ್ಟ ಹ್ಯಾಶ್ ಟೇಬಲ್, ಸಣ್ಣ ಅಥವಾ ದೊಡ್ಡ ಇದು ನಿಜವಾಗಿಯೂ ಅವಲಂಬಿಸಿರುತ್ತದೆ ಕಾರಣ ಎಷ್ಟು ದೊಡ್ಡ ನಿಮ್ಮ ಹ್ಯಾಶ್ ಮೇಜಿನ ಆಗಿದೆ. ನೀವು ಮಾತ್ರ ಸಂಗ್ರಹಿಸಲು ಎಂದು ನೀನು ನಿಮ್ಮ ಹ್ಯಾಶ್ ಕೋಷ್ಟಕದಲ್ಲಿ ಐದು ಅಂಶಗಳು, ಮತ್ತು ನೀವು ಒಂದು ಹ್ಯಾಶ್ ಕೋಷ್ಟಕದ ಹೊಂದಿವೆ ಇದು 10,000 ಅಂಶಗಳೊಂದಿಗೆ, ನೀವು ಬಹುಶಃ ಜಾಗವನ್ನು ಬಹಳಷ್ಟು ವ್ಯರ್ಥ ಮಾಡುತ್ತಿದ್ದೇವೆ. ಇದಕ್ಕೆ ನೀವು ಮಾಡಬಹುದು ಎಂದು ಬಹಳ ಸಾಂದ್ರವಾಗಿರುತ್ತದೆ ಹ್ಯಾಶ್ ಕೋಷ್ಟಕಗಳು ಆದರೆ ಸಣ್ಣ ನಿಮ್ಮ ಹ್ಯಾಶ್ ಟೇಬಲ್, ಪಡೆಯುತ್ತದೆ ಆ ಲಿಂಕ್ ಪಟ್ಟಿಗಳ ಪ್ರತಿ ಮುಂದೆ ಪಡೆಯುತ್ತದೆ. ಆದ್ದರಿಂದ ನಿಜವಾಗಿಯೂ ವ್ಯಾಖ್ಯಾನಿಸಲು ಯಾವುದೇ ದಾರಿ ಇಲ್ಲ ನಿಖರವಾಗಿ ಒಂದು ಹ್ಯಾಷ್ ಟೇಬಲ್ ಮತ್ತು ಗಾತ್ರ, ಆದರೆ ಬಹುಶಃ ಸುರಕ್ಷಿತವಾಗಿದೆ ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಹೇಳಲು ಒಂದು ಲಿಂಕ್ ದೊಡ್ಡದಾಗಿದೆ ಎಂದು ನಾನು ಅದೇ ಉಳಿಸಿಡಲು ಪಟ್ಟಿ ಒಂದು trie ಹೆಚ್ಚು ಆದರೆ ಸಣ್ಣ. ಮತ್ತು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ನಾಲ್ಕನೇ ಇವೆ ಈ ರಚನೆಗಳ ನಾವು ಬಗ್ಗೆ ಬಂದಿದೆ. ಒಂದು trie ಒಳಗೆ ಸೇರಿಸುವ ಸಂಕೀರ್ಣವಾಗಿದೆ. ಕ್ರಿಯಾತ್ಮಕ ಸಾಕಷ್ಟು ಇಲ್ಲ ಸ್ಮರಣೆ ಹಂಚಿಕೆ, ವಿಶೇಷವಾಗಿ ಆರಂಭದಲ್ಲಿ, ನೀವು ನಿರ್ಮಿಸಲು ಆರಂಭಿಸಿ ನೀವು ಎಂದು. ಆದರೆ ನಿರಂತರ ಸಮಯ. ಇದು ಕೇವಲ ಮಾನವ ಅಂಶ ಇಲ್ಲಿ ಟ್ರಿಕಿ ಮಾಡುತ್ತದೆ. ಶೂನ್ಯ ಪಾಯಿಂಟರ್ ಎದುರಿಸುವ ಹೊಂದಿರುವ, malloc ಬಾಹ್ಯಾಕಾಶ, ಬಹುಶಃ malloc ಜಾಗ ಅಲ್ಲಿ ಹೋಗಿ ಅಲ್ಲಿಂದ ಮತ್ತೆ. ಬೆದರಿಕೆ ಅಂಶ ರೀತಿಯ ಕ್ರಿಯಾಶೀಲ ಸ್ಮರಣೆ ಹಂಚಿಕೆ ಪಾಯಿಂಟರ್ಸ್ ತೆರವುಗೊಳಿಸಲು ತಡಕೆ ಹೊಂದಿದೆ. ಆದರೆ ನೀವು ಅದನ್ನು ತೆರವುಗೊಳಿಸಲಾಗಿದೆ ಒಮ್ಮೆ, ಅಳವಡಿಕೆ ವಾಸ್ತವವಾಗಿ, ಸಾಕಷ್ಟು ಸರಳ ಬರುತ್ತದೆ ಇದು ನಿಶ್ಚಿತವಾಗಿಯೂ ನಿರಂತರ ಸಮಯ. ಅಳಿಸುವಿಕೆಗೆ ಸುಲಭ. ನೀವು ಮಾಡಬೇಕಾದ್ದು ಎಲ್ಲಾ ಕೆಳಗೆ ನ್ಯಾವಿಗೇಟ್ ಒಂದು ಪಾಯಿಂಟರ್ಸ್ ಮತ್ತು ಮುಕ್ತ ನೋಡ್ ಒಂದೆರಡು ಆದ್ದರಿಂದ ಬಹಳ ಒಳ್ಳೆಯದು. ವೀಕ್ಷಣ ಬಹಳ ವೇಗವಾಗಿ. ಇದು ಕೇವಲ ಆಧರಿಸಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಉದ್ದ. ನಿಮ್ಮ ಎಲ್ಲ ಡೇಟಾವನ್ನು ವೇಳೆ ಆದ್ದರಿಂದ ಐದು ಪಾತ್ರ ತಂತಿಗಳು ಉದಾಹರಣೆಗೆ, ನೀವು ಐದು ಸಂಗ್ರಹಿಸಲು ನೀವು ನಿಮ್ಮ trie ಪಾತ್ರ ತಂತಿಗಳು ಇದು ಕೇವಲ ಐದು ಹಂತಗಳು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ನೀವು ಹುಡುಕುತ್ತಿರುವ ಅವಕಾಶಗಳು. ಐದು ಆದ್ದರಿಂದ, ಕೇವಲ ಒಂದು ಸ್ಥಿರವಾದ ಅಂಶ ಆಗಿದೆ ಮತ್ತೆ, ಅಳವಡಿಕೆ, ತೆಗೆದುಹಾಕುವುದು, ಮತ್ತು ವೀಕ್ಷಣ ಇಲ್ಲಿ ಪರಿಣಾಮಕಾರಿಯಾಗಿ, ಎಲ್ಲಾ ನಿರಂತರ ಸಮಯ. ಇನ್ನೊಂದು ವಿಷಯ ನಿಮ್ಮ trie ಎಂದು ವಾಸ್ತವವಾಗಿ ರೀತಿಯ ಈಗಾಗಲೇ ಬಲ ಪ್ರತಿಗಳ? ನಾವು ನೀವು ಹೇಗೆ ಕಾರಣದಿಂದ ಸೇರಿಸುವ ಅಂಶಗಳನ್ನು, ಆಫ್ ಅಕ್ಷರ ಅಕ್ಷರವಾಗಿ ಹೋಗಿ ಪ್ರಮುಖ ಅಂಕಿಯ ಪ್ರಮುಖ, ಅಥವಾ ಅಂಕಿಯ, ಸಾಮಾನ್ಯವಾಗಿ, ನಿಮ್ಮ trie ರನ್ನಲ್ಲಿ ಅಂತ್ಯಗೊಳ್ಳುತ್ತದೆ ನೀವು ರಚಿಸಲು ರೀತಿಯ ವಿಂಗಡಿಸಲಾಗುತ್ತದೆ. ಇದು ನಿಜವಾಗಿಯೂ ಮಾಡುತ್ತದೆ ಅರ್ಥದಲ್ಲಿ ವಿಂಗಡಿಸುವ ಬಗ್ಗೆ ಯೋಚಿಸುವುದು ಅದೇ ರೀತಿಯಲ್ಲಿ ನಾವು ಯೋಚಿಸುವ ಇದು ಸಾಲುಗಳು, ಅಥವಾ ಲಿಂಕ್ ಪಟ್ಟಿಗಳನ್ನು, ಅಥವಾ ಹ್ಯಾಶ್ ಕೋಷ್ಟಕಗಳು. ಆದರೆ ಕೆಲವು ಅರ್ಥದಲ್ಲಿ, ನಿಮ್ಮ ನೀವು ಹೋಗಿ ಎಂದು trie ವಿಂಗಡಿಸಲ್ಪಡುತ್ತದೆ. ತೊಂದರೆಯೂ, ಸಹಜವಾಗಿ, ಎಂದು ಒಂದು trie ವೇಗವಾಗಿ ಬೃಹತ್ ಆಗುತ್ತದೆ. ಪ್ರತಿ ಜಂಕ್ಷನ್ ಪಾಯಿಂಟ್ ಗೆ, ನೀವು ಇರಬಹುದು ನಿಮ್ಮ ಪ್ರಮುಖ ಅಂಕೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ ವೇಳೆ ಹೊಂದಿಲ್ಲ, ನೀವು ಇತರ 10 ಸ್ಥಳಗಳಲ್ಲಿ ನೀವು ಹೋಗಬಹುದು ಪ್ರತಿ ನೋಡ್ ಅಂದರೆ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿದೆ ಡೇಟಾ ಬಗ್ಗೆ ನೀವು ಸಂಗ್ರಹಿಸಲು ಬಯಸುವ ಆ ನೋಡ್, ಜೊತೆಗೆ 10 ಪಾಯಿಂಟರ್ಸ್ ನಲ್ಲಿ. ಇದು CS50 ಐಡಿಇ ಮೇಲೆ, 80 ಬೈಟ್ಸ್. ಆದ್ದರಿಂದ ಕನಿಷ್ಠ 80 ಬೈಟ್ಗಳು ಇಲ್ಲಿದೆ ನೀವು ರಚಿಸಿದ ಪ್ರತಿ ನೋಡ್, ಮತ್ತು ಸಹ ಡೇಟಾ ಲೆಕ್ಕ ಅಲ್ಲ. ನಿಮ್ಮ ಗ್ರಂಥಿಗಳು ವೇಳೆ ಬದಲಿಗೆ ಅಂಕೆಗಳು ಅಕ್ಷರಗಳನ್ನು ಈಗ ನೀವು 26 ಪಾಯಿಂಟರ್ಸ್ ಹೊಂದಿಲ್ಲ ಪ್ರತಿ ಸ್ಥಳದಿಂದ. ಮತ್ತು 26 ಬಾರಿ 8 ಬಹುಶಃ 200 ಬೈಟ್ಗಳು, ಅಥವಾ ಸ್ವಲ್ಪ. ಮತ್ತು ನೀವು ಬಂಡವಾಳವಿಲ್ಲದ ಮತ್ತು ನೀವು ಮಾಡಬಹುದು lowercase-- ನಾನು ಈ ಹೋಗುವ ಬಾಗುತ್ತೇನೆ ಅಲ್ಲಿ ಬಲ, ನೋಡಿ? ನಿಮ್ಮ ಗ್ರಂಥಿಗಳು ನಿಜವಾಗಿಯೂ ಪಡೆಯುವುದು ದೊಡ್ಡ, ಮತ್ತು ಆದ್ದರಿಂದ trie ಸ್ವತಃ, ಒಟ್ಟಾರೆ, ಮಾಡಬಹುದು ತುಂಬಾ, ನಿಜವಾಗಿಯೂ ದೊಡ್ಡ ಪಡೆಯಿರಿ. ಬಾಹ್ಯಾಕಾಶ ಉನ್ನತ ನಲ್ಲಿ ವೇಳೆ ಆದ್ದರಿಂದ ನಿಮ್ಮ ಗಣಕದಲ್ಲಿ ಪ್ರೀಮಿಯಂ, ಒಂದು trie ಸರಿಯಾದ ಮಾರ್ಗ ಇರಬಹುದು ಅದರ ಇತರ ಪ್ರಯೋಜನಗಳನ್ನು ಆದರೂ, ಹೋಗಿ ನಾಟಕದಲ್ಲಿ ಬರುವ. ನಾನು ಡೌಗ್ ಲಾಯ್ಡ್ ಮನುಷ್ಯ. ಈ CS50 ಹೊಂದಿದೆ.