[Powered by Google Translate] [ಸರದಿಗೆ] [ಕ್ರಿಸ್ ಗರ್ಬರ್, ಹಾರ್ವರ್ಡ್ ವಿಶ್ವವಿದ್ಯಾಲಯ] ಈ CS50.TV, CS50 ಹೊಂದಿದೆ] ಅಂಶಗಳ ಒಂದು ವ್ಯವಸ್ಥಿತ ಸಂಗ್ರಹ ಸಂಗ್ರಹಿಸಲು ಒಂದು ಉಪಯುಕ್ತ ಮಾಹಿತಿ ರಚನೆಯನ್ನು ಕ್ಯೂ ಹೊಂದಿದೆ. ಅಂಶಗಳನ್ನು ತೆಗೆದು ಅಗತ್ಯವಿದೆ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಅವರು ಸೇರಿಸಲಾಯಿತು ಅದೇ ಕ್ರಮದಲ್ಲಿ ಮಾಹಿತಿ. ಈ ಕಲ್ಪನೆಯನ್ನು ಮೊದಲ ಔಟ್, ಮೊದಲ ಒಂದು ಸಂಕ್ಷಿಪ್ತ ರೂಪವಾಗಿದೆ FIFO, ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಈ ದೃಶ್ಯೀಕರಿಸುವುದು ಸಹಾಯ, ಇದು ಚಿತ್ರದ ಸಹಾಯಕವಾಗಬಹುದು ಒಂದು ಅಂಗಡಿಯಲ್ಲಿ ಒಂದು Checkout ಲೈನ್. ಜನರು ಆಗಮಿಸಿದ ಅವರು ಸಾಲಿನ ಹಿಂದೆ ನಿರೀಕ್ಷಿಸಿ. ನಗದು ಗುಮಾಸ್ತೆ ನಂತರ, ಮುಂಭಾಗದ ಗ್ರಾಹಕರಿಗೆ ಸೇವೆ ತಿರುವುಗಳು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ನಂತರ ಒಂದು ಸಮಯದಲ್ಲಿ ಸಾಲಿನ ಒಂದು ನಿರ್ಗಮಿಸಲು ಯಾರು. ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲಿ, ನಾವು ತಲೆ ಎಂದು ಕ್ಯೂ ಮುಂದೆ ನೋಡಿ ಮತ್ತು ಟೈಲ್ ಎಂದು ಮರಳಿ. ನಾವು ಅಪ್ಲಿಕೇಶನ್ ಈ ಬಳಸಬಹುದು ಆಗ ಒಂದು ಉದಾಹರಣೆ ವರ್ಗ ನೋಂದಣಿಯ ಒಂದು waitlist ಹೊಂದಿದೆ. ಆಸನಗಳು ವರ್ಗ ಲಭ್ಯವಾಗಲಿದೆ, ಮಾಹಿತಿ ಕಾಯುವ ಪಟ್ಟಿಯಲ್ಲಿ ಮೇಲಿನ ವ್ಯಕ್ತಿಯ ವರ್ಗ ತೊಡಗಿಸಿಕೊಳ್ಳುವುದು ಅವಕಾಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಎ ಕ್ಯೂ ಯಾವುದೇ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಬಳಸಿ ನಿರ್ಮಿಸಲು ಸಾಧ್ಯ ಇಂತಹ ವಿನ್ಯಾಸ ಅಥವಾ ಜೊತೆಗೂಡಿದ ಪಟ್ಟಿಯಾಗಿ, ಕ್ರಮದಲ್ಲಿ ಮಾಹಿತಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಸರದಿಯಲ್ಲಿ ಐಟಂಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಂಗ್ರಹ ಜೊತೆಗೆ, ನಾವು, ಕ್ಯೂ ಕೊನೆಯಲ್ಲಿ ಐಟಂಗಳನ್ನು ಸೇರಿಸಲು ಒಂದು ವಿಧಾನದ ಅಗತ್ಯವಿದೆ ಇದು enqueuing ಕರೆಯಲಾಗುತ್ತದೆ ಮತ್ತೊಂದು, ಕ್ಯೂ ಮುಖ್ಯಸ್ಥ ಒಂದು ಐಟಂ ತೆಗೆದುಹಾಕಲು ಇದು dequeuing ಕರೆಯಲಾಗುತ್ತದೆ. ಇದು ಕ್ಯೂ ಪ್ರಸ್ತುತ ಉದ್ದ ಮರಳಲು ಮತ್ತೊಂದು ವಿಧಾನವನ್ನು ಸೇರಿಸುವಂತೆ ಸಾಮಾನ್ಯವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ ಹಾಗೆಯೇ ಕ್ಯೂ ಖಾಲಿ ವೇಳೆ ಪರೀಕ್ಷಿಸಲು ಒಂದು ವಿಧಾನ. ನಾವು ಸಿ ಪೂರ್ಣಾಂಕಗಳ ಒಂದು ಕ್ಯೂ ಜಾರಿಗೆ ಎಂಬುದರ ನೋಡೋಣ, ಅಂಶಗಳ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಒಂದು ವ್ಯೂಹವನ್ನು ಬಳಸಿಕೊಂಡು. ಮೊದಲ, ನಮ್ಮ ಅಸ್ಥಿರ ಹಿಡಿದಿಡಲು ಕ್ಯೂ ಎಂಬ ರಚನೆಯನ್ನು ರಚಿಸಿ. ನಾವು ಪೂರ್ಣಾಂಕಗಳ ನಿಗದಿತ ಗಾತ್ರದ 0 ಸೂಚ್ಯಂಕ ರಚನೆಯ ಬಳಸುತ್ತದೆ ಅಂಶಗಳನ್ನು ಶೇಖರಿಸಿಡಲು. ನಾವು ಒಂದು ವೇರಿಯೇಬಲ್ ಹೆಡ್ ಒಳಗೊಂಡಿದೆ ಆ ಸಾಲಿನಲ್ಲಿ ಮುಂಚೂಣಿಯಲ್ಲಿ ಪ್ರಸ್ತುತ ಎಂದು ಅಂಶ ಸೂಚಕ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಮೂರನೇ ವೇರಿಯಬಲ್, ಉದ್ದವನ್ನು ಆವರಿಸುತ್ತದೆ, ಬಳಸಲಾಗುತ್ತದೆ ರಚನೆಯ ಅಂಶಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಾಪಾಡುವುದು. ಪರ್ಯಾಯವಾಗಿ, ನೀವು ವೇರಿಯಬಲ್ ಎಂಬ ಬಾಲ ಬಳಸಿಕೊಂಡು ಪರಿಗಣಿಬಹುದು ರಚನೆಯ ಕೊನೆಯ ಕ್ಷೇತ್ರದಲ್ಲಿ ಅಂಶ ತೋರಿಸಲು. ನಾವು ಯಾವುದೇ ಕೋಡ್ ಬರೆಯಲು ಮೊದಲು ನಮ್ಮ ವಿನ್ಯಾಸ ಔಟ್ ಪ್ರಯತ್ನಿಸೋಣ. ಉದ್ದ 0 ಖಾಲಿ ರಚನೆಯ ಆರಂಭಿಸೋಣ, ತಲೆ 0 ಗೆ ಸೆಟ್. ಈಗ ನಾವು ಎನ್ಕ್ಯೂ 4 ಮೌಲ್ಯಗಳು - 6, 2, 3, ಮತ್ತು 1. ಉದ್ದ ಈಗ 4 ಆಗಿರುತ್ತದೆ ಮತ್ತು ತಲೆಯ 0 ಉಳಿದುಕೊಳ್ಳಲು ಕಾಣಿಸುತ್ತದೆ. ನಾವು ಮೌಲ್ಯವನ್ನು dequeue ಏನಾಗುತ್ತದೆ? ನಾವು, 3 ಉದ್ದವನ್ನು ಕಡಿಮೆ , 1 ಹೆಡ್ ಸೆಟ್ ಮತ್ತು ಮೌಲ್ಯವನ್ನು 6 ಹಿಂತಿರುಗಿ. ಆ ಕೋಡ್ ಈ ರೀತಿ ಇರಬಹುದು. ಇಲ್ಲಿ ನಾವು, dequeue ಫಂಕ್ಷನ್ , ಮತ್ತು ಅಂಶ ಒಂದು ಪಾಯಿಂಟರ್ - ಪ್ರಶ್ನೆ - ಇದು ಕ್ಯೂ ಒಂದು ಪಾಯಿಂಟರ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಇದು ಒಂದು ರೀತಿಯ ಇಂಟ್ ಹೊಂದಿದೆ. ಮೊದಲ ನಾವು, ಇದು 0 ಹೆಚ್ಚು ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಕ್ಯೂ ಉದ್ದ ಪರಿಶೀಲಿಸಿ dequeued ಮಾಡಲು ಒಂದು ಅಂಶ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು. ನಂತರ ನಾವು, ಸ್ಥಾನವನ್ನು ತಲೆಗೆ, ಅಂಶಗಳನ್ನು ಶ್ರೇಣಿಯಲ್ಲಿನ ನೋಡಲು ಮತ್ತು ಆ ಸ್ಥಾನದಲ್ಲಿ ಮೌಲ್ಯ ಎಂದು ಅಂಶ ಮೌಲ್ಯವು ಸೆಟ್. ನಂತರ ನಾವು ಮುಂದಿನ ಸೂಚ್ಯಂಕ ಎಂದು ತಲೆ ಬದಲಾಯಿಸಲು % ಸಾಮರ್ಥ್ಯ. ನಾವು 1 ಕ್ಯೂ ಉದ್ದವನ್ನು ಕಡಿಮೆ. ಅಂತಿಮವಾಗಿ, ನಾವು dequeue ಯಶಸ್ವಿ ಎಂದು ಸೂಚಿಸಲು ನಿಜವಾದ ಹಿಂತಿರುಗಿ. ನಾವು ಮತ್ತೆ dequeue ವೇಳೆ, ಉದ್ದ, 2 ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ ತಲೆ ಸಹ, 2 ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ ಮತ್ತು ಮರಳುವ ಮೌಲ್ಯವನ್ನು 2 ಆಗಿರುತ್ತದೆ. ನಾವು ಇಂತಹ 7 ಮತ್ತೊಂದು ಮೌಲ್ಯವನ್ನು ಎನ್ಕ್ಯೂ ಏನಾಗುತ್ತದೆ? ನಾವು ಕ್ಯೂ ಕೊನೆಯಲ್ಲಿ ಇದ್ದರು, ಮಾಹಿತಿ ನಾವು ರಚನೆಯ ಅಂಶ 0 ಮೌಲ್ಯವನ್ನು ಸುಮಾರು ಕಟ್ಟಲು ಮತ್ತು ಸಂಗ್ರಹಿಸಲು ಅಗತ್ಯವಿದೆ. ಗಣಿತದ ಈ ಉದ್ದ ಸೇರಿಸುವ ಮೂಲಕ ನಿರೂಪಿಸಲಾಗಿದೆ ಮಾಡಬಹುದು ತಲೆಯ ಸೂಚ್ಯಂಕದ ಮತ್ತು ಕ್ಯೂ ಸಾಮರ್ಥ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಡ್ಯುಲಸ್ ಪ್ರದರ್ಶನ. ಇಲ್ಲಿ ಆ 4% 4 ಇದು 2 +2, ಆಗಿದೆ ಇದು 0 ಆಗಿದೆ. ಈ ಫಂಕ್ಷನ್ ಕೋಡ್ ಈ ಕಲ್ಪನೆಯನ್ನು ಅನುವಾದ. ಇಲ್ಲಿ ನಾವು, ಎನ್ಕ್ಯೂ ಕಾರ್ಯ ನೋಡಿ ಪ್ರಶ್ನೆ - ಇದು ಕ್ಯೂ ಒಂದು ಪಾಯಿಂಟರ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ - ಮತ್ತು ಒಂದು ಪೂರ್ಣಾಂಕ ಇದು ಅಂಶ enqueued ಎಂದು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನಾವು ಮುಂದಿನ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಎಂದು ಕ್ಯೂ ಸಾಮರ್ಥ್ಯ ಕ್ಯೂ ಪ್ರಸ್ತುತ ಅಳತೆಗಿಂತ ಇನ್ನೂ ದೊಡ್ಡದಾಗಿದೆ. ಮುಂದೆ, ನಾವು ಅಂಶಗಳನ್ನು ಶ್ರೇಣಿಯಲ್ಲಿನ ಅಂಶ ಶೇಖರಿಸಿಡಲು ಇಂಡೆಕ್ಸ್ನಲ್ಲಿ ಇದು ತಲೆಯ + ಉದ್ದ% ಕ್ಯೂ ಸಾಮರ್ಥ್ಯವನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ನಾವು, 1 ಕ್ಯೂ ಉದ್ದವನ್ನು ಹೆಚ್ಚಿಸುವ ತದನಂತರ ಎನ್ಕ್ಯೂ ಕಾರ್ಯ ಯಶಸ್ವಿ ಎಂದು ಸೂಚಿಸಲು ನಿಜವಾದ ಹಿಂತಿರುಗಿ. ನಾವು ಪ್ರಸ್ತಾಪಿಸಿದ್ದಾರೆ ನೀವು ಎರಡು ಕಾರ್ಯಗಳನ್ನು ಜೊತೆಗೆ, ಎರಡು ಹೆಚ್ಚುವರಿ ಕಾರ್ಯಗಳಿವೆ. ಮೊದಲ, isempty ಕಾರ್ಯ ಸರದಿಗೆ ಒಂದು ಪಾಯಿಂಟರ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಉದ್ದ 0 ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಎರಡನೇ, ಉದ್ದ ಕಾರ್ಯ ಇದು ಕೂಡ ಕ್ಯೂ ಒಂದು ಪಾಯಿಂಟರ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು struct ಪ್ರಸ್ತುತ ಉದ್ದ ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಈ ಕಿರು ಅವಲೋಕನ ಒಂದು ಸರತಿ ಒಂದು ಸಂಭವನೀಯ ಅನುಷ್ಠಾನ ಪ್ರದರ್ಶಿಸಿದೆ. ಈ ಅನುಷ್ಠಾನಕ್ಕೆ ಮಿತಿಗಳನ್ನು ಕ್ಯೂ ಒಂದು ನಿಶ್ಚಿತ ಗರಿಷ್ಟ ಗಾತ್ರವನ್ನು ಹೊಂದಿದೆ. ನಾವು ಕ್ಯೂ ಹಿಡಿಸುವ ಹೆಚ್ಚು ಅಂಶಗಳನ್ನು ಸೇರಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ನಾವು, ವಿನಂತಿಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ ಮತ್ತು ಅಂಶ ಬಿಡಿ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಅಥವಾ ನಾವು ದೋಷ ಕೆಲವು ರೀತಿಯ ಮರಳಲು ಆರಿಸಿಕೊಳ್ಳಬಹುದು. ಬದಲಿಗೆ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿ ಬಳಸಿ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಗಾತ್ರ ಕ್ಯೂ ಸುಲಭವಾಗುತ್ತದೆ ಎಂದು. ಆದರೆ, ನಾವು ಒಂದು ಲಿಂಕ್ ಪಟ್ಟಿಯ ಅಂಶಗಳನ್ನು ನೇರ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ ರಿಂದ ನಾವು ಬಾಲದ ಟ್ರ್ಯಾಕ್ ಇದ್ದರೆ, ನಾವು ಕೊನೆಯ ಪ್ರತಿ ಬಾರಿ ಪಡೆಯಲು ಸಂಪೂರ್ಣ ಲಿಂಕ್ ಪಟ್ಟಿ ಸ್ಕ್ಯಾನ್ ಇರಬೇಕು. ನಾವು ಮತ್ತೊಂದು ಅಕ್ಷಾಂಶ ರೀತಿಯ ಒಂದು ವ್ಯೂಹವನ್ನು ಬಳಸಿಕೊಂಡು ಪರಿಗಣಿಬಹುದು ಸ್ಟ್ರಕ್ಟ್ಸ್ಳ ಉದಾಹರಣೆಗೆ, ಸಂಕೀರ್ಣ ಅಂಶಗಳ ಸಾಲುಗಳನ್ನು ಸೃಷ್ಟಿಸಲು. , ಒಂದು ವರ್ಗ waitlist ನಮ್ಮ ಉದಾಹರಣೆಗೆ ಯೋಚಿಸುವಾಗ ಈ ರಚನೆಗಳು ಮಾಲಿಕ ವಿದ್ಯಾರ್ಥಿಗಳು ಬಿಂಬಿಸುತ್ತದೆ. ನನ್ನ ಹೆಸರು ಕ್ರಿಸ್ ಗರ್ಬರ್ ಆಗಿದೆ, ಮತ್ತು ಈ CS50 ಹೊಂದಿದೆ. [CS50.TV] ಮತ್ತು ಆದಾಯ - >> ಒನ್ ಮೋರ್ ಟೈಮ್. ಮತ್ತು ಸೂಚಿಸುತ್ತದೆ ನಿಜವಾದ ಮರಳಿ - ಕ್ಯೂ ಯಶಸ್ವಿಯಾಯಿತು. -% ಕ್ಯೂ ಸಾಮರ್ಥ್ಯ - ಅದನ್ನು ಬದಲಾಯಿಸಿ ಮೋಜು ಎಂದು ವಿಶೇಷವೇನು. [ಲಾಫ್ಟರ್]