3 תשובות
באיזה שפה זה?
כן יש כמה אפשרויות פשוטות לגשת לזה. קודם כל תפתח תור חדש שאתה יכול להעביר ממנו ואליו את כל המספרים בתור הישן כדי שיהיה אפשר לעבור עליהם.
אם יש לך גבול על ערך המספרים (למשל מספרים מ0 עד 100) זה הכי קל. עושים מערך עם 101 תאים (מ0 עד 100) וכל אינדקס של המערך אתה שם כמה המספר שלו מופיע במערך. כלומר עבור אינדקס 0 אתה עובר על התור ובודק כמה אפסים יש ושם במערך וכך הלאה 101 מעברים על התור.
ואז אתה עובר עוד פעם עבור כל מספר שמופיע כמות זוגית של פעמים (יש לך את זה במערך) ומוחק אותם מהתור.
אם אין לך גבול על המספרים, תכניס מספר סימן שתדע שנגמר התור למשל -1 לסוף התור ואז תראה את המספר בתחילת התור, תשמור תכניס לסוף ואז תעבור על התור כשאתה מכניס לסוף ותספור כמה פעמים המספר ןכשאתה רואה את הסוף תכניס אותו לסוף ותסיים את הספירה, אם זוגי תעשה את זה שוב אבל תמחק את כל ההופעות של המספר הזה
זה עובד גם אם יש גבול אבל ה1 יותר קל לעשות לדעתי
אם יש לך גבול על ערך המספרים (למשל מספרים מ0 עד 100) זה הכי קל. עושים מערך עם 101 תאים (מ0 עד 100) וכל אינדקס של המערך אתה שם כמה המספר שלו מופיע במערך. כלומר עבור אינדקס 0 אתה עובר על התור ובודק כמה אפסים יש ושם במערך וכך הלאה 101 מעברים על התור.
ואז אתה עובר עוד פעם עבור כל מספר שמופיע כמות זוגית של פעמים (יש לך את זה במערך) ומוחק אותם מהתור.
אם אין לך גבול על המספרים, תכניס מספר סימן שתדע שנגמר התור למשל -1 לסוף התור ואז תראה את המספר בתחילת התור, תשמור תכניס לסוף ואז תעבור על התור כשאתה מכניס לסוף ותספור כמה פעמים המספר ןכשאתה רואה את הסוף תכניס אותו לסוף ותסיים את הספירה, אם זוגי תעשה את זה שוב אבל תמחק את כל ההופעות של המספר הזה
זה עובד גם אם יש גבול אבל ה1 יותר קל לעשות לדעתי
אני מקווה שצדקתי מזמן לא עשיתי תורים
באותו הנושא: