최대 50 개의 연결된 목록이있는 프로그램을 만들어야합니다. 기본적으로 내 프로그램은 일부 메시지를 생성하고 내 문자열 앞에 오는 표시기를 기반으로 오른쪽 링크 된 목록에 메시지를 넣어야합니다.1 개 이상의 연결된 목록 - 요소 추가
충분히 명확한 지 모르겠지만 내 코드의 일부 (중요한 부분)를 표시하려고합니다. 내가 링크 된 목록으로 (상단) 새로운 요소를 추가하기 위해 만든 기능은 다음과 같습니다
void InsertLL (News p, char M[]) {
char * text = malloc(strlen(M)+1);
strcpy(text, M);
News s,t;
t = malloc(sizeof(struct List));
t-> Text = text;
s = p;
p = t;
p-> next = s;
}
내 구조체 목록 (내리스트의 요소의 형태)는 문자 포인터 (라는 텍스트)를 포함 목록의 다음 요소에 대한 포인터.
내 프로그램을 시뮬레이트 할 때 포인터가 포인터 p [0]에 의해 가리키는 연결 목록에 넣어야하는 메시지를 수신했다고 가정합니다. 그래서 새로운 요소를 만듭니다 (목록이 비어있는 경우를 잊어 버렸습니다. 이미 작성했습니다). 그리고 제가 보여준 함수를 사용하여 목록의 맨 위에 추가하십시오. 이제 다음 포인터 p [1]에 넣어야하는 다른 메시지를 받았습니다. p [0] -> Text를 인쇄하면 p [1] -> Text라는 텍스트가 나옵니다.
즉, p [i]가 가리키는 목록에 새 요소를 추가하면 이전의 모든 texts p[i] -> Texts
이이 새 요소의 새 텍스트를 가져옵니다. 내가 뭘 잘못하고 있는지 전혀 모르겠다.
더 많은 정보가 필요하면 도움이 될지 모르겠다.
이 사실 나는 그게 이해하지 않았다이다 진짜 문제. – ST3
의도는 "스택과 같은"목록 (새 요소가 항상 앞에 표시) 또는 "대기열 같은"목록 (새 요소가 항상 끝에 추가되고 앞은 첫 번째 삽입에만 설정 됨))? 알고리즘에 큰 차이가 있습니다. 여기에 최소한 가지고 계신 것은 스택처럼 보이지만 그것이 당신이 원하는 것이라고는 생각하지 않습니다. – WhozCraig