Updating problem
This commit is contained in:
parent
bd3ccfaf15
commit
00d793b154
1 changed files with 14 additions and 4 deletions
18
lab12/3.c
18
lab12/3.c
|
@ -17,18 +17,28 @@ Slist tail(Slist lst) {
|
||||||
return lst->next;
|
return lst->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
Slist insert(int element, Slist current) {
|
Slist init() {
|
||||||
|
Slist dummy = malloc(sizeof(struct _selist));
|
||||||
|
dummy->next = dummy;
|
||||||
|
return dummy;
|
||||||
|
}
|
||||||
|
|
||||||
|
void insert(int element, Slist current) {
|
||||||
Slist head = current;
|
Slist head = current;
|
||||||
|
|
||||||
|
// chestia asta merge pana la ultimul element, si ramane acolo.
|
||||||
|
// daca-i head n-are treaba.
|
||||||
while(current->next != head) {
|
while(current->next != head) {
|
||||||
current = current->next;
|
current = current->next;
|
||||||
}
|
}
|
||||||
|
// creaza un nod nou, la next si schimba adresa nodului curent pe next.
|
||||||
current->next = malloc(sizeof(struct _selist));
|
current->next = malloc(sizeof(struct _selist));
|
||||||
|
// se muta pe nod-ul creat
|
||||||
current = current->next;
|
current = current->next;
|
||||||
|
|
||||||
|
// baga elementu si face ca nodu sa pointeze spre head.
|
||||||
current->el = element;
|
current->el = element;
|
||||||
current->next = head;
|
current->next = head;
|
||||||
return current;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_list(Slist list) {
|
void print_list(Slist list) {
|
||||||
|
@ -70,13 +80,13 @@ void delete_middle(Slist list) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
Slist head = malloc(sizeof(struct _selist));
|
Slist head = init();
|
||||||
head->next = head;
|
|
||||||
insert(1, head);
|
insert(1, head);
|
||||||
insert(2, head);
|
insert(2, head);
|
||||||
insert(3, head);
|
insert(3, head);
|
||||||
insert(4, head);
|
insert(4, head);
|
||||||
insert(5, head);
|
insert(5, head);
|
||||||
|
insert(6, head);
|
||||||
delete_middle(head);
|
delete_middle(head);
|
||||||
print_list(head);
|
print_list(head);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue