پاورپوینت کامل و جامع با عنوان لیست ها در زبان سی (C) در 37 اسلاید
زبان برنامهنویسی سی، زبانی همه منظوره، همگردان، سطح میانی، ساختیافته، دستوری و روندگرا میباشد که در سال ۱۹۷۲ توسط دنیس ریچی در آزمایشگاههای بل ساخته شد.
در سال ۱۹۶۷ مارتین ریچاردز زبان BCPL را برای نوشتن نرمافزارهای سیستمعامل و کامپایلر در دانشگاه کمبریج ابداع کرد. سپس در سال ۱۹۷۰ کن تامسون زبان B را بر مبنای ویژگیهای زبان BCPL نوشت و از آن برای ایجاد اولین نسخههای سیستمعامل یونیکس در آزمایشگاههای بل استفاده کرد. زبان C در سال ۱۹۷۲ توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد و ویژگیهای جدیدی همچون نظارت بر نوع دادهها نیز به آن اضافه شد. ریچی از این زبان برای ایجاد سیستمعامل یونیکس استفاده کرد اما بعدها اکثر سیستمعاملهای دیگر نیز با همین زبان نوشته شدند. این زبان با سرعت بسیاری گسترش یافت و چاپ کتاب "The C Programming Language" در سال ۱۹۷۸ توسط برایان کرنیگان و ریچی باعث رشد روزافزون این زبان در جهان شد.
متأسفانه استفاده گسترده این زبان در انواع کامپیوترها و سختافزارهای مختلف باعث شد که نسخههای مختلفی از این زبان به وجود آید که با یکدیگر ناسازگار بودند. در سال ۱۹۸۳ مؤسسه استانداردهای ملی آمریکا (ANSI) کمیتهای موسوم به X3J11 را را مأمور کرد تا یک تعریف فاقد ابهام و مستقل از ماشین را از این زبان تدوین نماید. در سال ۱۹۸۹ این استاندارد تحت عنوان ANSI C به تصویب رسید و سپس در سال ۱۹۹۰، سازمان بینالمللی استانداردسازی (ISO) نیز این استاندارد را پذیرفت و مستندات مشترک آنها تحت عنوان ANSI/ISO C منتشر گردید.
در سالهای بعد و با ظهور روشهای برنامهنویسی شئگرا نسخه جدیدی از زبان C بنام ++C توسط بییارنه استراستروپ در اوایل ۱۹۸۰ در آزمایشگاههای بل توسعه یافت. در ++C علاوه بر امکانات جدید، خاصیت شئگرایی نیز به C اضافه شدهاست.
با گسترش شبکه و اینترنت، نیاز به زبانی احساس شد که برنامههای آن بتوانند بر روی هر ماشین و هر سیستمعامل دلخواهی اجرا گردد. شرکت سان مایکروسیستمز در سال ۱۹۹۵ میلادی زبان جاوا را برمبنای C و ++C ایجاد کرد که هماکنون از آن در سطح وسیعی استفاده میشود و برنامههای نوشته شده به آن بر روی هر کامپیوتری که از جاوا پشتیبانی کند (تقریباً تمام سیستمهای شناخته شده) قابل اجرا میباشد.
فهرست مطالب:
لیست ها
ويژگي هاي نمايش ساختمان داده ها با استفاده از آرايه و نگاشت ترتيبي
مشکلات نمايش ترتيبي
نمايش پيوندي
اشاره گرها
خطر استفاده از اشاره گرها
استفاده از حافظه پويا (استفاده از heap)
ليست هاي تک پيوندي
ليست هاي پيوندي
امکانات لازم براي ايجاد ليست پيوندي
چاپ يک ليست
صف و پشته پيوندي
تابع add و delete
تابع اضافه کردن به يک پشته پيوندي
حذف از يک پشته پيوندي
اضافه کردن گره اي به انتهاي يک صف پيوندي
حذف از ابتداي يک صف پيوندي
نمايش چند جمله اي ها به صورت ليست هاي تک پيوندي
جمع چند جمله اي
تحليل جمع چند جمله اي ها
رابطه هم ارزي
الگوريتم تعيين کلاس هاي هم ارزي
الگوريتم هم ارزي
نمايش ماتريس هاي اسپارس به وسيله ليست پيوندي
ليست هاي پيوندي دوگانه
درج دريک ليست پيوندي دوگانه حلقوي
و...