Операции с односвязными списками.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

1. Вставка элемента в начало односвязного списка.

 

 

Вставим в начало данного списка элемент, информационное поле которого содержит переменную D. Чтобы это осуществить, необходимо произвести следующие действия :

а) Создать пустой элемент, на который указывает указатель p.

 

 

b) Информационному полю созданного элемента присвоить значение D.

 

с) Связать новый элемент со списком.

Ptr(p)=lst (lst - уже не указывает на начало списка)

d) Перенести указатель lst на начало списка.

Окончательно:

 

 

2. Удаление элемента из начала односвязного списка

Удалим 1-й элемент списка, но при этом запомним информацию, содержащуюся в поле info этого элемента.

 

 

Чтобы это осуществить, необходимо произвести следующие действия :

a) Ввести указатель р, который будет указывать на удаляемый элемент.

P=lst

b) Запомнить поле info элемента, на который ссылается указатель р, в некоторую переменную (х).

X=info( P )

c) Перенести указатель lst на новое начало списка.

lst=ptr( P )    

d) Удалить элемент на который указывает указатель р.

Freenode( P )

Окончательно:

 

3. Вставка элемента в список

Вставим в данный список после элемента на который указывает указатель р, элемент с информационным полем х.

х.

 

Чтобы это осуществить, необходимо произвести следующие действия :

a) Создать пустой элемент на который указывает указатель q. 

Q=getnode

b) Внести х в информационное поле созданного элемента.

Info(Q)=x

c) Связать элемент х с элементом В.

Ptr(Q)=Ptr(P) - это значит, что указателю созданного элемента присваивается значение указателя элемента р.

d) Связать элемент А с элементом х.

Ptr(p)=Q - это значит, что следующим за элементом А будет элемент на который указывает указатель Q.

Окончательно:

 

 

4. Удаление элемента из односвязного списка

Удалим из списка элемент, который следует за элементом с рабочим указателем р.

 

 

Чтобы это осуществить необходимо произвести следующие действия :

a) Ввести указатель Q, который будет указывать на удаляемый элемент.

Q=ptr(p)

b) Поставить за элементом А элемент В.

Ptr(p)=Ptr(Q)

с) Запомнить информацию, которая содержится в поле info удаляемого элемента.

K=info(Q)

d) Удалим элемент с указателем Q.

Freenode(Q)

Окончательно:

 

Кольцевые списки

Пример кольцевого списка представлен на следующем рисунке.

 

 

На этом рисунке, список замыкается в своеобразное "кольцо": двигаясь по ссылкам, можно от последнего элемента списка переходить к заглавному элементу. В связи с этим списки подобного рода называют кольцевыми списками.

Чтобы закольцевать список необходимо присвоить указателю последнего элемента указатель начала списка (Ptr(p)=lst).

p - указатель последнего элемента;

Lst - указатель начала списка.

Операции с кольцевыми списками:

1. Вставка элемента в кольцевой список

Чтобы осуществить эту операцию необходимо произвести следующие действия:

a) Создать пустой элемент на который указывает указатель q

q=getnode

b) Внести х в информационное поле созданного элемента

info(q)=x

c) Связать элемент Х с элементом В

ptr(q)=ptr(p) - это означает, что указателю созданного элемента присваивается значение указателя элемента p.

d) Связать элемент А с элементом Х

ptr(p)=q - это означает, что следующим за элементом А будет элемент на который указывает указатель q.

Окончательно:

 

 

2. Удаление элемента из кольцевого списка

Удалим из списка элемент, который следует за элементом с рабочим указателем р.

 

 

Чтобы это осуществить, необходимо произвести следующие действия:

a) Ввести указатель q, который будет указывать на удаляемый элемент.

q=ptr(p)

b) Поставить за элементом А элемент В

ptr(p)=ptr(q)

c) Запомнить информацию, которая содержится в поле info удаляемого элемента.

k=info(q)

d) Удалить элемент с указателем q.

Freenode(q)

Окончательно:

Контрольные вопросы по теории

Дата: 2019-12-10, просмотров: 279.