Составить программу которая вставляет в список

всем привет помогите написать программу,буду очень благодарен.Вот условие: Составить программу, которая вставляет в список L новый элемент F перед первым вхождением элемента E, если E входит в L.

Код к задаче: «Составить программу, которая вставляет в список L новый элемент F»

Листинг программы

program Project1; type TData = Integer; TPElem = ^TElem; TElem = record Data : TData; PNext : TPElem; end; TDList = record PFirst, PLast : TPElem; end; procedure Init(var aList : TDList); begin aList.PFirst := nil; aList.PLast := nil; end; procedure Add(var aList : TDList; const aData : TData); var PElem : TPElem; begin New(PElem); PElem^.Data := aData; PElem^.PNext := nil; if aList.PFirst = nil then aList.PFirst := PElem else aList.PLast^.PNext := PElem; aList.PLast := PElem; end; procedure Free(var aList : TDList); var PNext, PDel : TPElem; begin PNext := aList.PFirst; while PNext <> nil do begin PDel := PNext; PNext := PNext^.PNext; Dispose(PDel); end; Init(aList); end; procedure WriteList(const aList : TDList); var PElem : TPElem; begin if aList.PFirst = nil then begin Write(‘Список пуст.’); Exit; end; PElem := aList.PFirst; while PElem <> nil do begin if PElem <> aList.PFirst then Write(‘, ‘); Write(PElem^.Data); PElem := PElem^.PNext; end; end; var L : TDList; PElem, PPrev, PNew : TPElem; Data, E, F : TData; i, Code : Integer; S : String; begin Init(L); repeat //Создание списока. Writeln(‘Создание списка.’); Writeln(‘Прекратить ввод — пустая строка + Enter.’); i := 0; repeat Write(‘Элемент ‘, i + 1, ‘: ‘); Readln(S); if S <> » then begin Val(S, Data, Code); if Code = 0 then begin Inc(i); Add(L, Data); end else Writeln(‘Неверный ввод.

Повторите.’); end; until S = »; Writeln(‘Составлен список:’); WriteList(L); Writeln; repeat Write(‘Задайте значение искомого элемента (E): ‘); Readln(S); Val(S, E, Code); if Code <> 0 then Writeln(‘Неверный ввод. Повторите.’); until Code = 0; repeat Write(‘Задайте значение вставляемого элемента (F): ‘); Readln(S); Val(S, F, Code); if Code <> 0 then Writeln(‘Неверный ввод.

12 Списки и операции над ними Python

Читайте также:
Что такое лимфодренажная программа

Повторите.’); until Code = 0; PPrev := nil; PElem := L.PFirst; PNew := nil; while (PElem <> nil) and (PNew = nil) do if PElem^.Data = E then begin New(PNew); PNew^.Data := F; PNew^.PNext := PElem; if PPrev = nil then L.PFirst := PNew else PPrev^.PNext := PNew; end else begin PPrev := PElem; PElem := PElem^.PNext; end; if PNew <> nil then begin Writeln(‘Новый элемент F вставлен в список.’); Writeln(‘Список после вставки:’); WriteList(L); Writeln; end else Writeln(‘Элемента Е нет в списке. Новый элемент F в список не вставлен.’); Free(L); Writeln(‘Память, занятая под список, освобождена. Работа завершена.’); Writeln(‘Повторить — Enter. Выход — любой символ + Enter.’); Readln(S); until S <> »; end.

Источник: studassistent.ru

Как быстро сделать список источников и расставить ссылки в тексте?

Untitled

Guest User

Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

C 1.65 KB | None | 0 0

//Составить программу, которая вставляет в список L новый элемент F за каждым вхождением элемента Е

typedef struct nd {

struct nd * next ;

int buff = 0 , test = 0 , f = 0 , e = 0 , n = 0 , j = 0 , i = 0 , flag4 = 0 ;

ND * beg = NULL , * end = NULL , * p , * beg2 , * end2 , * p2 , * temp ;

printf ( «Vvedite kol-vo jelementov: » ) ;

p = ( ND * ) malloc ( sizeof ( ND ) ) ;

p2 = ( ND * ) malloc ( sizeof ( ND ) ) ;

printf ( «Vvedite 1-j jelement: » ) ;

p2 -> val = j ;

p -> next = end ;

p2 -> next = end2 ;

for ( i = 0 ; i <= ( n — 2 ) ; i ++ ) {

p -> next = ( ND * ) malloc ( sizeof ( ND ) ) ;

p = p -> next ;

printf ( «Vvedite %d-j jelement: » , i + 2 ) ;

p -> next = end ;

printf ( » n Soderzhimoe spiska: n » ) ;

while ( p != NULL ) {

printf ( » %d » , p -> val ) ;

p = p -> next ;

printf ( » n Vvedite novyj jelement F: » ) ;

printf ( » n Vvedite jelement E: » ) ;

for ( i = 0 ; i <= ( n — 1 ) ; i ++ ) {

p2 -> next = ( ND * ) malloc ( sizeof ( ND ) ) ;

p2 = p2 -> next ;

if ( p -> val == e ) {

p2 -> val = e ;

p2 -> next = end2 ;

p2 -> next = ( ND * ) malloc ( sizeof ( ND ) ) ;

p2 = p2 -> next ;

p2 -> val = f ;

p2 -> next = end2 ;

p2 -> val = p -> val ;

p2 -> next = end2 ;

Читайте также:
В каких программах можно создать компьютерную презентацию Microsoft word

p = p -> next ;

printf ( » n » ) ;

beg2 = beg2 -> next ;

for ( i = 0 ; i <= ( n — 1 + flag4 ) ; i ++ ) {

printf ( » %d » , p2 -> val ) ;

p2 = p2 -> next ;

system ( «pause» ) ;

Advertisement

Add Comment

Please, Sign In to add comment

Advertisement

C | 4 min ago | 3.29 KB

GetText | 9 min ago | 0.25 KB

Java | 10 min ago | 0.70 KB

JSON | 1 hour ago | 4.59 KB

JSON | 1 hour ago | 4.57 KB

JSON | 1 hour ago | 4.52 KB

JavaScript | 1 hour ago | 0.63 KB

Python | 2 hours ago | 2.33 KB

Advertisement

We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand

Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!

Источник: pastebin.com

Ввод строки с добавлением в список?

Пользователь вводит слова, каждое с новой строки, пока не введет пустую строку. Затем должна выводить список без повторяющихся элементов.

Вопрос: Не пойму как нужно добавить в список слова

a = str(input())
b = list()
while a != »:
a = str(input())
b.append(a)
else:
print(b)

  • Вопрос задан более трёх лет назад
  • 3550 просмотров

1 комментарий

Простой 1 комментарий

trapwalker

Используйте специальный тег для цитирования кода.
Решения вопроса 2
Седой и строгий
Ответ написан более трёх лет назад
Нравится 3 1 комментарий

trapwalker

Ещё короче=)
$ py «set(iter(input,»))»
$ cat<<«»|py -l «set(l)»

trapwalker

Программист, энтузиаст

def task_v1(): «»» Принимает на вход строки (признак конца ввода — пустая строка), сохраняет их в список без повторений. Печатает сохранённые в списке строки. «»» lst = [] # делаем пустой список s = input() # вводим первую строку while s: # пока введённая строка не пуста: if s not in lst: # если строка не в списке: lst.append(s) # добавляем её s = input() # принимаем следующую строку print(‘n’.join(lst)) # объединяем все строки через абзац и печатаем def task_v2(): «»» Также принимает на вход строки, но сохраняет их в Счётчик.

Счётчик и порядок добавления запоминает и считает количество повторов. Печатает ключи счётчика. «»» from collections import Counter # импортируем класс счётчика c = Counter() # создаём экземпляр Счётчика s = input() # вводим первую строку while s: # пока введённая строка не пуста: c[s] += 1 # подсчитываем её счётчиком s = input() # принимаем следующую строку print(‘n’.join(c)) # объединяем ключи счётчика через абзац и печатаем def task_v3(): «»» То же, что и v2, но в функциональном стиле «»» from collections import Counter # импортируем класс счётчика print( # функция печати, которой даём строку. ‘n’.join( # которую формируем объединяя через абзац элементы (строки) полученные. Counter( # созданием экземпляра счётчика, которому в конструктор передаём. iter(input, ») # итератор, который будет вызывать функцию input пока она не вернёт », # а результаты всех вызовов (кроме последнего) будет возвращать по мере # запроса их конструктором Счётчика (для подсчёта) ).keys() # и формированием списка уникальных ключей (строк) из счётчика. # ктсати `.keys()` совершенно не нужен. Итаратор по счётчику возвращает ключи. ) ) def task_v3_1(): «»»В одну строку это выглядит не так ужасно:»»» print(‘n’.join(Counter(iter(input, »)))) def task_v4(): «»» То же, что и v3, но расписано на этапы и сохранено в промежуточные переменные «»» from collections import Counter # импортируем класс счётчика it = iter(input, ») # создаём итератор, который по мере запроса у него # очередных значений будет вызывать функцию # input пока она не вернёт пустую строку c = Counter(it) # создаём экземпляр Счётчика и в качестве аргумента # даём ему наш итератор. тем самым мы предлагаем # нашему новому счётчику запросить все значения, # что отдаст итератор и посчитать количество # вхождений каждой уникальной строки unic = c.keys() # получаем у счётчика его ключи, то есть все # уникальные строки, которые он считал. # Приятный побочный эффект, доступный в современном # Питоне — это сохранение порядка ключей по мере ввода. # Этот шаг не обязателен, поскольку счётчик итерируется по ключам. result_text = ‘n’.join(unic) # объединяем все уникальные строки через абзац. Вместо unic можно просто указать `c`. print(result_text) # и печатаем их

Читайте также:
Как сделать программу для psp

На баше можно совсем коротко, но порядок не сохраняется:
$ py «set(iter(input,»))»
$ cat Чтобы сохранялся — подлиннее получится:
$ cat py «collections.Counter(iter(input, »))»

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru