C 언어 진급 - 넷 째 주: 링크 역순 으로 출력 (10 점)
제목 내용:
프로그램 은 일련의 정 수 를 읽 을 것 입 니 다. 정 정수 의 수량 을 미리 모 르 고 - 1 을 읽 으 면 입력 이 끝 났 음 을 표시 합 니 다.그 다음 에 입력 과 반대 되 는 순서에 따라 읽 은 숫자 를 출력 하고 마지막 표지 가 끝 난 - 1 을 포함 하지 않 습 니 다.
입력 형식:
일련의 정수, 입력 - 1 은 끝 을 나타 내 고 - 1 은 입력 한 데이터 의 일부분 이 아니다.
출력 형식:
입력 과 반대 되 는 순서에 따라 모든 정 수 를 출력 하고 모든 정수 뒤에 빈 칸 과 뒤의 정수 로 구분 하 며 마지막 정수 뒤에 도 빈 칸 이 있다.
입력 예시:
1 2 3 4 -1
출력 예시:
4 3 2 1
시간 제한: 500 ms 메모리 제한: 32000 kb
// ,20180618
#include
#include
// ,
//
typedef struct _node {
int value;
struct _node *before;
} Node;
int main()
{
Node * head = NULL; //
int number;
do {
scanf("%d", &number);
if ( number != -1)
{
Node *p = (Node*)malloc(sizeof(Node));
p->value = number;
p->before = head; //p->before , p ( p )
head = p; // p
}
} while ( number != -1);
Node *p; // p
for ( p = head; p; p=p->before) {
printf("%d ", p->value);
}
return 0;
}
데이터 구 조 를 배 우 는 것 이 필요 하 다. 최근 에 야 링크 를 사용 하고 이해 하 게 되 었 다.다음은 전방 향 포인터 와 후계 지침 을 가 진 체인 테이블 로 유사 한 기능 을 수행 할 수 있 으 나 더욱 유연 하고 정방 향 또는 역방향 데이터 출력 을 마음대로 실현 할 수 있 습 니 다.
// ,20180618
#include
#include
#include
using namespace std;
typedef struct _node {
struct _node *before;
int value;
struct _node *next;
} Node;
int main()
{
Node * head = NULL; //
Node * tail = head;
int number;
do {
scanf("%d", &number);
if ( number != -1)
{
Node *p = (Node*)malloc(sizeof(Node));
p->before=NULL;
p->value = number;
p->next = NULL; //p->next , p ( p )
if(tail){
p->before = tail;
tail->next = p; // p
tail=p;
}
else{
tail=p;
head=tail;
}
}
} while ( number != -1);
Node *p; // p
for ( p = tail; p; p=p->before) {
printf("%d ", p->value);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
에세이 - 두 개의 순차적 단일 체인 테이블 결합(반복/비반복)제목: 두 개의 질서정연한 단일 체인 테이블 병합 반복: 비반복:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.