데이터 구조 학습 노트 ― 선형 표
1. 표 두, 표 미, 다른 요 소 는 하나의 직접 전구 와 직접 후계 만 있 습 니 다.
2. 모든 위치 에 삽입, 삭제 가능
저장 방식
1. 순서 표
2. 링크 (단 방향 링크, 양 방향 순환 링크)
3. 구체 적 인 실현 방식
1. 순서 표
질문:
순서 표 로 일부 정 수 를 저장 하고 정 수 를 입력 하면 데 이 터 를 삽입 하 는 것 을 나타 낸다 (예 를 들 어 입력 3 은 삽입 3 을 나타 낸다). 마이너스 정 수 를 입력 하면 데 이 터 를 삭제 하 는 것 을 나타 낸다 (예 를 들 어 입력 - 2 는 삭제 2 를 나타 낸다). 문 자 를 입력 하면 프로그램 을 종료 하 는 것 을 나타 낸다.삽입 과 삭제 과정 에서 이 표 의 순 서 를 유지 합 니 다.
//seqlist.h
#ifndef __SEQLIST_H__
#define __SEQLIST_H__
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define SIZE 10 /* */
typedef int datatype; /* */
typedef struct seqlist
{
datatype data[SIZE]; //
int last; //
}seq_list, *seq_plist;
#endif
//test.c
#include "seqlist.h"
int main(void)
{
int a; //
int ret;
seq_plist s;
s = seqlist_init(); //
while(1){
printf(" :
");
ret = scanf("%d", &a);
if(ret != 1)
exit(1);
else if(data >= 0)
seqlist_insert(s, a);
else
seqlist_del(s,-a);
}
return 0;
}
//seqlist.c
#include "seqlist.h"
seq_plist seqlist_init(void) //
{
seq_plist s;
s = (seq_plist)malloc(sizeof(seq_list));
if(NULL == s){
printf("malloc failed!
");
exit(1);
}
s->last = -1;
return s;
}
void seqlist_insert(seq_plist s, typedata a) //
{
if(seqlist_full(s))
return;
int i,j;
for(i = 0 ; i <= s->last; i++)
if(a < s->data[i])
break;
for(j = s->last; j >= i; j--)
s->data[j+1] = s->data[j];
s->data[i] = data;
s->last++;
seqlist_show(s);
}
void seqlist_del(seq_plist s, typedata a) //
{
if(seqlist_empty(s))
return;
int i,j;
for(i = 0; i <= s->last; i++)
if(a = s->data[i])
break;
for(j = i; j < s->last; j++)
s->data[j] = s->data[j+1];
s->last--;
seqlist_show(s);
}
bool seqlist_full(seq_plist s) //
{
if(s->last == size-1)
return true;
else
return false;
}
bool seqlist_empty(seq_plist s) //
{
if(s->last == -1)
return true;
else
return false;
}
void seqlist_show(seq_plist s) //
{
int i;
for(i = 0; i <= s->last; i++)
printf("%d\t", s->data[i]);
printf("
");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.