|
|
|
|
|
для: dima_s_d_s
(11.02.2008 в 04:01)
| | огромное спасибо... | |
|
|
|
|
|
|
|
для: daym0n
(10.02.2008 в 13:32)
| | Есть недочёты.
Следи за элементом NEXT, если после елемента нет елементов то NEXT должен показывать допустим в NULL.
Поправил код:
#include <iostream>
#include "stdio.h"
using namespace std;
struct node
{
int data;
struct node *prev;
struct node *next;
};
node first(int data);
void view(node *head);
node* add(node *head, int data);
node addAfter(node *head, int data);
int main()
{
int i, n;
node *head, *p;//p- указатель на текущий элемент
head = &first(1);
p=head;
n=50;
for(i=1;i<n;i++)
p=add(p, i);
view(head);
}
node first(int data)
{
node *temp = new node;
temp->data=data;
temp->prev=NULL;
temp->next=NULL;
return *temp;
}
void view(node *head)
{
node *t = head;
printf("\n");
while(t)
{
printf("%i\t", t->data);
t=t->next;
}
}
node* add(node *p, int data)
{
node *temp = new node;
temp->data=data;
temp->prev=p;
temp->next=NULL;
p->next=temp;
return temp;
}
|
| |
|
|
|
|
|
|
| столкнулся с ошибкой в данном участке кода на выходе единица:
#include "stdio.h"
struct node
{
int data;
struct node *prev;
struct node *next;
};
node first(int data);
void view(node *head);
node add(node *head, int data);
node addAfter(node *head, int data);
main()
{
int i, n;
node *head, *p;//p- указатель на текущий элемент
*head = *p = first(1);
n=50;
for(i=1;i<n;i++)
*p = add(p, i);
view(head);
}
node first(int data)
{
node *temp = new node;
temp->data=data;
temp->prev=NULL;
return *temp;
}
void view(node *head)
{
node *t = head;
printf("\n");
while(t)
{
printf("%i\t", t->data);
t=t->next;
}
}
node add(node *p, int data)
{
node *temp = new node;
temp->data=data;
temp->prev=p;
p->next=temp;
return *temp;
}
|
в чём может быть проблема? | |
|
|
|
|