리스트 구현 질문합니다.
에드가
질문 제목 : 리스트 구현 질문입니다.
리스트 구현시 add에 숫자말고 글자를 추가하는방법.
질문 내용 : 1.
아래처럼 리스트를 구현했는데요, 밑메 메인에서 list에 2,1,12 대신에 우유같은걸 추가하려면 어떻게 해야 하나요?
2.typedef struct{ element list[max_list_size]; //배열 정의 int length; // 현재 배열에 저장된 자료들의 개수}arraylisttype;여기서 length를 선언했는데요 밑에 메인에서 배열에 저장된 자료들의 갯수를 출력시킬려면 어떻게 해야하나요?
========================================================================================================================================================================================================================================================================================================================================================================================================
#include stdio.h#include stdlib.h#include string.h
#define max_list_size 100 //배열의 최대 크기
typedef int element;
typedef struct{ element list[max_list_size]; //배열 정의 int length; // 현재 배열에 저장된 자료들의 개수}arraylisttype;
// 오류처리함수void error(char*message){ fprintf(stderr,%s\n,message); exit(1);}//리스트 초기화void init(arraylisttype *l){ l-length =0;}// 리스트가 비어 있으면 1을 반환// 아니면 0을 반환int is_empty(arraylisttype *l){ return l-length ==0;}//리스트가 가득 차 있으면 1을반환// 그렇지 않으면 0을 반환int is_full (arraylisttype *l){ return l-length == max_list_size;}//리스트 출력void display(arraylisttype *l){ int i; for(i=0;i&l(i=0;il-length;i++) printf(%d\n,l-list[i]);}
//position 삽입하고자 하는 위치//item : 삽입하고자 하는 자료void add(arraylisttype *l, int position,element item){ if(!is_full(l) && (position=0)&&(position = l-length) ){ int i; for(i=(l-length-1); i=position;i--) l-list[i+1] = l-list[i]; l-list[position] = item; l-length++; }}
//position 삭제하고자 하는 위치// 반환값 삭제되는 자료element delete1(arraylisttype *l, int position){ int i; element item;
if(position 0 ||position = l-length) error(위치오류); item = l-list[position]; for(i=position; i(l-length-1);i++) l-list[i] = l-list[i+1]; l-length--; return item;}
// 메인
void main(){ arraylisttype list1; arraylisttype *plist;
//listtype을 정적으로 생성하고 listtype을 가리키는 //포인터를 함수의 매게 변수로 전달한다. init(&list1); add(&list1,0,2); add(&list1,0,1); add(&list1,0,12); display(&list1);
//listtype을 동적으로 생성하고 listtype을 가리키는 //포인터를 함수의 매게 변수로 전달한다. plist = (arraylisttype *)malloc(sizeof(arraylisttype)); init(plist); add(plist,0,2); add(plist,0,3); add(plist,0,1); display(plist); free(plist);}
-
들빛
Привет Я новичок
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694069 | unsigned 질문입니다. | 힘차 | 2025-05-07 |
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |
2693591 | 컴파일 에러에서 질문드립니다 (3) | 게자리 | 2025-05-03 |
2693463 | 동적할당 이용시 fwrite사용을 어떻게 해야하나요..? (10) | 일본어못해요 | 2025-05-02 |
2693387 | 배열문제입니다 수정오류캡쳐했습니다 (6) | 연하얀 | 2025-05-01 |
2693356 | text 입출력 내림차순 질문입니다 ㅠ | 빛글 | 2025-05-01 |