1 / 317

SOCS

SOCS. Hoofdstuk 1 Computerarchitectuur. C. Overzicht. Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Dynamische geheugenallocatie Lineaire Lijsten Lineaire Lijsten met dubbele bindingen Complexere gegevensstructuren. struct lijstelem { int info;

Télécharger la présentation

SOCS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOCS Hoofdstuk 1 Computerarchitectuur

  2. C Overzicht • Eenvoudig C • Arrays • Functies • Records • Dynamische gegevenstructuren • Dynamische geheugenallocatie • Lineaire Lijsten • Lineaire Lijsten met dubbele bindingen • Complexere gegevensstructuren

  3. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info struct lijstelem volgend C Dynamische geheugenallocatie Dynamischegeheugenallocatie NULL = nulwijzer

  4. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l ? C Dynamische geheugenallocatie

  5. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l ? ? C Dynamische geheugenallocatie

  6. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l 0 ? C Dynamische geheugenallocatie

  7. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l 0 ? ? C Dynamische geheugenallocatie

  8. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l 0 4 ? C Dynamische geheugenallocatie

  9. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l 0 4 ? ? C Dynamische geheugenallocatie

  10. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l; main() { l = alloc(2); l -> info = 0; l -> volgend = alloc(2); l -> volgend -> info = 4; l -> volgend -> volgend = alloc (2); l = NULL; } info volgend l NULL 0 4 ? ? C Dynamische geheugenallocatie

  11. C Dynamische geheugenallocatie Heap • Geheugenzone waarin dynamische geg.structuren kunnen gealloceerd worden • Vgl. Java: n = new Name(...); • Recuperatie van niet meer bereikbare geheugencellen = Garbage Collection

  12. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend C Lineaire Lijsten

  13. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i ? rl l ? ? Invoer 0 13 7 12 C Lineaire Lijsten

  14. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i ? rl l ? ? Invoer 0 13 7 12 C Lineaire Lijsten

  15. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i ? rl l Invoer 0 13 7 12 C Lineaire Lijsten

  16. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 12 rl l Invoer 0 13 7 C Lineaire Lijsten

  17. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 12 rl l Invoer 0 13 7 C Lineaire Lijsten

  18. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 12 rl l Invoer 0 13 7 12 C Lineaire Lijsten

  19. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 12 rl l Invoer 0 13 7 12 ? C Lineaire Lijsten

  20. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 12 rl l Invoer 0 13 7 12 ? C Lineaire Lijsten

  21. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 7 rl l Invoer 0 13 12 ? C Lineaire Lijsten

  22. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 7 rl l Invoer 0 13 12 ? C Lineaire Lijsten

  23. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 7 rl l Invoer 0 13 12 7 C Lineaire Lijsten

  24. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 7 rl l Invoer 0 13 12 7 ? C Lineaire Lijsten

  25. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 7 rl l Invoer 0 13 12 7 ? C Lineaire Lijsten

  26. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 13 rl l Invoer 0 12 7 ? C Lineaire Lijsten

  27. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 13 rl l Invoer 0 12 7 ? C Lineaire Lijsten

  28. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 13 rl l Invoer 0 12 7 13 C Lineaire Lijsten

  29. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 13 rl l Invoer 0 12 7 13 ? C Lineaire Lijsten

  30. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 13 rl l Invoer 0 12 7 13 ? C Lineaire Lijsten

  31. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 0 rl l Invoer 12 7 13 ? C Lineaire Lijsten

  32. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 0 rl l Invoer 12 7 13 ? C Lineaire Lijsten

  33. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = alloc(2); rl = l; i = getint(); while (i > 0) { rl -> info = i; rl -> volgend = alloc(2); rl = rl -> volgend; i = getint(); } rl -> info = 0; rl -> volgend = NULL; } info volgend i 0 rl l Invoer 12 7 13 0 NULL C Lineaire Lijsten

  34. l 12 7 13 0 NULL C Lineaire Lijsten Staartelement

  35. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend C Lineaire Lijsten

  36. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i ? rl l ? ? Invoer 0 13 7 12 C Lineaire Lijsten

  37. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i ? rl l ? ? Invoer 0 13 7 12 C Lineaire Lijsten

  38. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i ? rl l ? ? Invoer 0 13 7 12 C Lineaire Lijsten

  39. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 12 rl l NULL ? Invoer 0 13 7 C Lineaire Lijsten

  40. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 12 rl l NULL Invoer 0 13 7 ? ? C Lineaire Lijsten

  41. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 12 rl l NULL Invoer 0 13 7 12 ? C Lineaire Lijsten

  42. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 12 rl l NULL Invoer 0 13 7 12 NULL C Lineaire Lijsten

  43. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 12 rl l Invoer 0 13 7 12 NULL C Lineaire Lijsten

  44. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 7 rl l Invoer 0 13 12 NULL C Lineaire Lijsten

  45. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 7 rl l Invoer 0 13 12 ? NULL ? C Lineaire Lijsten

  46. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 7 rl l Invoer 0 13 12 7 NULL ? C Lineaire Lijsten

  47. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 7 rl l Invoer 0 13 12 7 NULL C Lineaire Lijsten

  48. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 7 rl l Invoer 0 13 12 7 NULL C Lineaire Lijsten

  49. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 13 rl l Invoer 0 12 7 NULL C Lineaire Lijsten

  50. struct lijstelem { int info; struct lijstelem * volgend; }; struct lijstelem *l, *rl; int i; main() { l = NULL; i = getint(); while (i > 0) { rl = alloc(2); rl -> info = i; rl -> volgend = l; l = rl; i = getint(); } } info volgend i 13 rl l Invoer 0 12 7 ? ? NULL C Lineaire Lijsten

More Related