מחרוזת (מדעי המחשב)
![]() |
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. | ||
הנכם מוזמנים להשלים את החלקים החסרים ולהסיר הודעה זו. שקלו ליצור כותרות לפרקים הדורשים השלמה, ולהעביר את התבנית אליהם. |
בתאוריה של שפות פורמליות ובמדעי המחשב, מחרוזת (באנגלית: string) היא רצף של סימנים מתוך אלפבית נתון. בשפות תכנות מחרוזת היא טיפוס נתונים המכיל רצף של תווים.
בשפות תכנות
בשפות תכנות אימפרטיביות המחרוזת מאוחסנת כמערך של תווים. בשפות פונקציונליות (כגון LISP או Haskell) מחרוזות מאוחסנות כרשימה.
יש מספר צורות מקובלות להתייחסות למחרוזת:
- ישנן שפות המתייחסות למחרוזת כאל מערך רגיל (למשל C) אבל בגלל שימושיותה הרבה של המחרוזת נכתבו לה פונקציות ספריה מיוחדות.
- ישנן שפות בהן המערך מטופל כטיפוס מיוחד בשפה (בדומה למספר), למשל ב־BASIC.
בשפות בהן צורת האחסון היא תמיד כמערך, הצורה המדויקת משתנה בהתאם לשפה:
- בחלק מהשפות (כמו C, אסמבלר), האחסון הוא בצורה של מערך שבסופו יש תו מציין.
- בשפות מסוימות (למשל Pascal) המערך מאוחסן עם הגודל שלו בתחילת המערך.
- בשפות אחרות (למשל ADA) אין כלל טיפול בגודל המערך על ידי השפה ועל המתכנת לדאוג לשמור את גודל המערך.
- ישנן שפות (למשל ב־Visual Basic) בהם נוקטים הן את שיטת התו המציין ואת שיטת שמירת הגודל.
בשפות בהן המחרוזת היא אובייקט, לרוב ההקצאה היא אוטומטית (כלומר כאשר מגדילים את גודל המחרוזת, המערכת מקצה שטח זיכרון גדול יותר) ואילו בשפות אחרות ההקצאה היא סטטית (אם חורגים מגודל המערך ב־C עלולים לקבל השחתת זיכרון).
פעולות אופייניות על מחרוזות הן:
- שרשור: איחוד שתי מחרוזות למחרוזת אחת.
- יצירת תת-מחרוזת ממקום מסוים ובאורך מסוים ממחרוזת נתונה. דוגמה: מתת-המחרוזת הנמצאת החל מהמקום החמישי באורך 2 של המחרוזת 'שלום רב שובך' היא 'רב'.
- איתור תת-מחרוזת נתונה במחרוזת נתונה. דוגמה: חיפוש המחרוזת 'רב' במחרוזת 'שלום רב שובך' ייתן את התוצאה 5 (או 4 במחרוזת שהתו הראשון בה נמצא במקום ה-0).
ראו גם
מבני נתונים | ||
---|---|---|
מבנים מופשטים | רשימה • מחסנית • קבוצה • רב קבוצה • תור • דו-תור • תור עדיפויות • מילון • מחרוזת • איחוד קבוצות זרות | |
מימושים לינאריים | מערך • מערך משונן • טבלת גיבוב • רשימה מקושרת • רשימת דילוגים • חוצץ | |
גרפים ועצים | ערימה (בינארית • בינומית • פיבונאצ'י) • עץ חיפוש (עץ אדום שחור • עץ 2-3 • עץ 2-3-4) • עץ סיפות • עץ B • עץ +B • עץ AVL • עץ Splay • עץ BSP • עץ kd • עץ R • טריי X מהיר • טריי y מהיר | |
הסתברותיים | פילטר בלום |
This article is issued from Hamichlol. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.