0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 10
|
|
1
|
Не разделяется список структур
20.06.2014, 08:53. Показов 423. Ответов 0
Создание,просмотр работают нормально, а в чем проблема с разделением списка не могу понять. Коментарии функции rascheplenie на картинке (не смог разодраться с кодировкой)
C | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
| #include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
struct spis
{
int date;
struct spis *v1; // v1 – óêàçàòåëü íà ïðåäûäóùóþ ñòðóêòóðó
struct spis *v2; // v2 – óêàçàòåëü íà ïîñëåäóþùóþ ñòðóêòóðó
};
void create(void); // ñîçäàíèå
void list(spis *); // ïðîñìîòð
void rascheplenie(spis *s,int n);//ðàñ÷åïëåíèå spis *a,spis *b,
struct spis *head,*tail,*a,*b; // óêàçàòåëè íà íà÷àëî è êîíåö ñïèñêà
int n=100;
//******************************************************************ÌÀÈÍ Íà÷àëî!!
main()
{
int nom;
while(1)
{
printf("\n 1. create \n");
printf(" 2. list \n");
printf(" 3. rascheplenie\n");
printf(" 4. list a\n");
printf(" 5. Exit \n");
scanf("%d",&nom);
switch(nom)
{
case 1:
create(); break;
case 2:
list(head);break;
case 3:
rascheplenie(head, n);
break;
case 4:
list(a);
break;
case 5:
free(head);
return 0;
default:system("cls");
printf("false regim!");
}
}
getch();
}
//******************************************************************ÌÀÈÍ Êîíåö!!
void create(void)
{spis *s,*pred;
pred=NULL;
int i;
for(i=1; i<n; i++){
s=(spis *)malloc(sizeof(spis));
s->date=rand();
s->v1=pred;
if (pred != NULL)
pred->v2=s;
else
head=s;
pred=s;
}
tail=s;
tail->v2=NULL;
system("cls");
}
void list(spis *p)
{if (p==head)
while (p != NULL)
{//puts(p->f);
printf("\n %d ",p->date);
p=p->v2;
}
else if (p==tail)
while ( p!= NULL)
{
printf("\n %d ",p->date);
p=p->v1;
}
else
puts("false address ");
getch();
system("cls");
}
void rascheplenie(spis *s,int n)
{
a=(spis *)malloc(sizeof(spis));
//b=(spis *)malloc(sizeof(spis));
a=s;
b=s->v2;
while(s!=NULL){
a->v2=b->v2;
a=(spis *)malloc(sizeof(spis));
a=b;
b=b->v2;
s=s->v2;
}
//a=k;
//b=p;
system("cls");
list(a);
} |
|
0
|