Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 60004
Invision Power ... 58239
Организация зап... 58162
Модуль Forms 56871
Приложение «Про... 56135
Создание отчето... 55700
Оператор выбора... 55627
Подключение Mic... 55431
ТЕХНОЛОГИИ ДОСТ... 51818
Программируемая... 48928
Пример работы с... 47649
Имитационное мо... 47431
21 ошибка прогр... 42423
Реклама
http://mebiclub.ru/ спальни и мебель для спальни в классическом стиле купить. .
http://vn96.ru/ камера интернет магазин видеонаблюдения.
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

Пользователей: 13,013
новичок: nicedetox
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Диплом - база данных поставщиков на Delphi (MS Sql Server)+ Пояснительна...
Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка
Моделирование системы управления качеством производственного процесса на...

Реклама

двусвязный список
#include
#include
#include


int dat_mass[100]={1,2,3,14,5,10,1,2,3,4,5,6,7};


typedef struct SP // двусвязный список
{
int data;
struct SP *next,*pred;
} sp;


// создание двусвязного списка заданной длины
sp *sp_new(int len)
{
sp* tmp;
if(len<=0) return NULL;
tmp=(sp*)malloc(sizeof(sp));
if(!tmp) return (sp*)-1;
tmp->next=NULL;
if(len<100) tmp->data=dat_mass[len-1];
else tmp->data=len;
for(len--;len;len--)
{
tmp->pred=(sp*)malloc(sizeof(sp));
if(!tmp->pred)
{
while(tmp->next)
{tmp=tmp->next;
free(tmp->pred);
}
free(dat_mass);
free(tmp);
return (sp*)-1;
}
tmp->pred->next=tmp;
tmp=tmp->pred;
if(len<100) tmp->data=dat_mass[len-1];
else tmp->data=len;
}
tmp->pred=NULL;
free(dat_mass);
return tmp;
}

// удаление двусвязного списка
sp *sp_del(sp* q)
{
if(!q) return NULL;
while(q->pred)
q=q->pred;
while(q->next)
{q=q->next;
free(q->pred);
}
free(q);
return NULL;
}

// вывод на экран двусвязного списка
void sp_print(sp *q)
{
if(q->pred) printf("not first\n");
while(q)
{
printf("%d",q->data);
if(q->next) printf(",");
q=q->next;
}
printf("\n");
}

// подсчет длины двусвязного списка
int sp_len(sp* q)
{
int a;
for(a=0;q;a++,q=q->next);
return a;
}

// поиск элемента по индексу
sp* sp_index(sp*q,int ind)
{
if(ind<0) return NULL;
for (;((ind>0)&&(q));ind--) q=q->next;
return q;
}

// поиск элемента по значению
sp *sp_val(sp* q,int val)
{while(q&&(q->data!=val)) q=q->next;
return q;
}

// удаление элемента из списка
sp *del_item(sp*q)
{sp *tmp;
if(!q) return NULL;
tmp=NULL;
if(q->next)
{q->next->pred=q->pred;
tmp=q->next;
}
if(q->pred)
{q->pred->next=q->next;
tmp=q->pred;
}
free(q);
if(!tmp) return NULL;
while(tmp->pred)
tmp=tmp->pred;
return tmp;
}

// добавление элемента в список
sp *add_item(int a,sp*q,int f)
{sp *t;
t=(sp*)malloc(sizeof(sp));
t->data=a;
if(q==0) {t->pred=t->next=NULL; return t;}

if(f==0)
{t->next=q;
t->pred=q->pred;
q->pred=t;
if(t->pred)
t->pred->next=t;
}
else
{t->pred=q;
t->next=q->next;
q->next=t;
if(t->next)
t->next->pred=t;
}
while(t->pred)
t=t->pred;
return t;
}

int main(int argc, char* argv[])
{
sp *t,*w;
int a;
setlocale(LC_ALL, "Russian");
printf("создан двусвязный список:\n");
t=sp_new(10);
sp_print(t);
a=sp_len(t);
printf("длиной: %i\n", a);
w=sp_index(t,9);
printf("элемент под индексом 9 найден и он равен %d\n",w->data);
w=sp_val(t,10);
printf("элемент со значением %d найден\n",w->data);
w=add_item(99,w,0);
printf("вставлен новый элемент равный 99 перед ранее найденным:\n");
sp_print(w);
printf("удален ранее вставленный элемент:\n");
w=sp_val(w,99);
w = del_item(w);
sp_print(w);
printf("двусвязный список удален\n");
sp_del(t);
system("pause");
return 0;
}



Опубликовал Kest February 22 2014 14:31:13 · 0 Комментариев · 2153 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере!
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Учебник по создан...
С. Г. Горнаков - ...
Киллер окон
Библиотека програ...
Trojan [Исходник ...
Платформа програм...
Prolog Interprete...
Программирование ...
Анимированное поя...
ADVstatusbar
Панель для реклам...
ComboBox97
Blib [Исходник на...
FormShape [Исходн...
Tenis [Исходник н...
Proeffectimage
ScrollCredit
Моделирование дви...
Программирование ...
PHP: Полезные приемы

Топ загрузок
Приложение Клие... 100289
Delphi 7 Enterp... 76771
Converter AMR<-... 20017
Borland C++Buil... 10592
GPSS World Stud... 9070
Borland Delphi ... 7576
Turbo Pascal fo... 6874
Visual Studio 2... 4892
Калькулятор [Ис... 3915
FreeSMS v1.3.1 3482
Случайные статьи
Протокол анонсиров...
сервера (всегда)]т...
Генеалогическое де...
Служба самостоятел...
Определить инициал...
Основные принципы РоЕ
Поиграем с панелью...
Причинные КОДЫ
Обеспечение обратн...
Как конфигурируютс...
Функция скачки фай...
Абстрактные классы
Модифицированный д...
Счетчики импульсов
Ограничение распро...
13.6. Задачи
Шифрование и расши...
Создание подсетей ...
Формат PNG
Указатель this
Linux — система бе...
16-2)
Глава 1. Риск: ос...
Драйверы сегментов
Visual FoxPro сам ...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?