데이터 구조 실험 1
4132 단어 데이터 구조
#include // :
#include
#define MAXSIZE 9
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int ElemType;
typedef int Status;
typedef struct Sqlist{
ElemType data[MAXSIZE];
int length;
Sqlist(){
length=0;
}
}Sqlist;
Status ListShow(Sqlist &L);
/* —— */
Status ListClear(Sqlist &L){
memset(L.data,0,sizeof(L.data));
L.length=0;
return OK;
}
/* —— */
Status GetElem(const Sqlist &L,const int &i,ElemType &e){
if(L.length==0||i<1||i>L.length){
printf(" : %d, 。
",i);
return ERROR;
}
e=L.data[i-1];
return OK;
}
/* —— */
Status ListInsert(Sqlist &L,int i,ElemType e){
int k,len=L.length,temp;
if(len>=MAXSIZE){
printf(" :
");
return ERROR;
}else if(i<1||i>len+1){
printf(" : %d ,
",i);
return ERROR;
}else if(i<=len){
for(k=len-1;k>=i-1;k--){
L.data[k+1]=L.data[k];
}
}
L.data[i-1]=e;
L.length++;
printf(" :%d , :%d ,
",i,e);
/* */
ListShow(L);
printf("
");
return TRUE;
}
/* */
Status ListDelete(Sqlist &L,int i,ElemType &e){
int k;
if(L.length==0){
printf("
");
return ERROR;
}
if(i<1||i>L.length){
printf(" : :%d
",i);
return ERROR;
}
e=L.data[i-1];
if(i
#include
#include
#include
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int ElemType ;
typedef struct Node {
ElemType data;
struct Node *next;
}Node;
typedef struct Node * LinkList;
/*
, 。
。
*/
Status GetElem(LinkList head,int i,ElemType &e)
{
int j=1;
LinkList p;
p=head->next;
while(p&&jnext;
j++;
}
if(!p||idata;
printf(" !!!
");
return OK;
}
/*
: , 。
。
*/
Status ListInsert(LinkList *head,int i,ElemType e){
int j=1;
LinkList p=*head;
while(p&&jnext;
j++;
}
if(!p||idata=e;
s->next=p->next;
p->next=s;
printf(" !!!
");
return OK;
}
Status ListDelete(LinkList &L,int i,ElemType &e){
int j=0;
LinkList p=L;
while( (p->next)&&(jnext;
j++;
}
if( (!p) || (j>i-1) ){
printf(" !!!
:%d
",i);
return ERROR;
}
LinkList q=p->next;
p->next=q->next;
e=q->data;
free(q);
printf(" : :%d :%d
",i,e);
return OK;
}
Status ListShow(LinkList &L){
LinkList p=L->next;
if(!(p->next)){
printf("
");
return ERROR;
}
while(p->next){
printf("%d ",p->data);
p=p->next;
}
printf("
");
return OK;
}
int main()
{
int e;
LinkList head =(LinkList)malloc(sizeof(Node));
LinkList s1=(LinkList)malloc(sizeof(Node));
s1->data=4;
s1->next=NULL;
head->next=s1;
ListInsert(&head,1,2);
ListInsert(&head,2,3);
ListInsert(&head,2,7);
ListInsert(&head,3,5);
GetElem(head,3,e);
printf(" : :%d :%d
",3,e);
ListDelete(head,2,e);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.