Guest User

Untitled

a guest
Jun 24th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. struct Node
  7. {
  8. string str;
  9. Node *next;
  10. Node *prev;
  11. int priority;
  12. };
  13.  
  14. class List
  15. {
  16. Node *head;
  17. Node *tail;
  18. Node *temp;
  19. public:
  20. void show();
  21. void add(int x, string str);
  22. void delet();
  23. Node *found(int priority);
  24. List();
  25. ~List();
  26. };
  27.  
  28. #include "List.h"
  29.  
  30.  
  31.  
  32. void List::show()
  33. {
  34. Node *temp = head;
  35. while (temp!=NULL)
  36. {
  37. cout << temp->str<<endl;
  38. temp = temp->next;
  39. }
  40. }
  41.  
  42. void List::add(int x, string str)
  43. {
  44. Node *arr = new Node;
  45. if (head != NULL && tail != NULL)
  46. {
  47. temp=head;
  48. arr = found(x);//ищем начало части с нужным приоритетом
  49. }
  50. temp = NULL;
  51. temp->priority = x; //тут вылетает исключение
  52. temp->str = str;
  53. if (head == NULL && tail == NULL)
  54. {
  55. head = temp;
  56. tail = temp;
  57. }
  58. else if(head->next==NULL)
  59. {
  60. head->next = temp;
  61. tail = temp;
  62. }
  63. else if (arr->next == NULL)
  64. {
  65. arr->next = temp;
  66. tail = temp;
  67. }
  68. else
  69. {
  70. Node *tmp = new Node;
  71. tmp = arr->next;
  72. arr->next = temp;
  73. temp->prev = arr;
  74. temp->next = tmp;
  75. tmp->prev = temp;
  76. }
  77. }
  78.  
  79. Node * List::found(int priority)
  80. {
  81. if (temp->priority == priority)
  82. return temp;
  83. else
  84. return temp = temp->next;
  85. }
  86.  
  87. List::List()
  88. {
  89. head = NULL;
  90. tail = NULL;
  91. temp = NULL;
  92. }
  93.  
  94.  
  95. List::~List()
  96. {
  97. }
Add Comment
Please, Sign In to add comment