Форум: Форум C++Разное
Новые темы: 00
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: двухсвязные списки

Сообщения:  [1-3] 

 
 автор: daym0n   (11.02.2008 в 07:46)   письмо автору
 
   для: dima_s_d_s   (11.02.2008 в 04:01)
 

огромное спасибо...

  Ответить  
 
 автор: 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;
}

  Ответить  
 
 автор: daym0n   (10.02.2008 в 13:32)   письмо автору
 
 

столкнулся с ошибкой в данном участке кода на выходе единица:
#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;
}


в чём может быть проблема?

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования