Вставка элемента в однонаправленный список
В динамические структуры легко добавлять элементы, так как для этого достаточно изменить значения адресных полей. Вставка первого и последующих элементов списка отличаются друг от друга. Поэтому в функции, реализующей данную операцию, сначала осуществляется проверка, на какое место вставляется элемент. Далее реализуется соответствующий алгоритм добавления (рис. 29.2).
Рис. 29.2. Вставка элемента в однонаправленный список
/*вставка элемента с заданным номером в однонаправленный список*/Single_List* Insert_Item_Single_List(Single_List* Head, int Number, int DataItem){ Number--; Single_List *NewItem=new(Single_List); NewItem->Data=DataItem; NewItem->Next = NULL; if (Head == NULL) {//список пуст Head = NewItem;//создаем первый элемент списка } else {//список не пуст Single_List *Current=Head; for(int i=1; i < Number && Current->Next!=NULL; i++) Current=Current->Next; if (Number == 0){ //вставляем новый элемент на первое место NewItem->Next = Head; Head = NewItem; } else {//вставляем новый элемент на непервое место if (Current->Next != NULL) NewItem->Next = Current->Next; Current->Next = NewItem; } } return Head; }
Дата добавления: 2015-08-14; просмотров: 899;