단일 체인 시트 의 기본 동작 (생 성, 삭제, 삽입, 역 설정)
2823 단어 데이터 구조
#include
#include
#include
#include
using namespace std ;
typedef struct Node{
int data ;
struct Node *next ;
}node , *Lnode ;
int Linklist_length( node *head ){
node *p = (node*)malloc(sizeof(node)) ;
int len = 0 ;
while ( p ){
p = p->next ;
len ++ ;
}
return len ;
}
Lnode Link_reverse_head( node *head ){
node *p = head->next ;
head->next = NULL ;
node *q ;
while ( p ){
q = p ;
p = p->next ;
q->next = head->next ;
head->next = q ;
}
return head ;
}
Lnode Linklist_insert( int pos , int num , node *head ){
node *index = head ;
for ( int i = 0 ; i < pos ; i ++ ){
index = index->next ;
}
node *p = (node*)malloc(sizeof(node)) ;
p->data = num ;
p->next = index->next ;
index->next = p ;
return head ;
}
Lnode Linklist_delete( int pos , node *head ){
node *index = head ;
for ( int i = 1 ; i < pos ; i ++ ){
index = index->next ;
}
node *p = index->next ;
index->next = p->next ;
p->next = NULL ;
free( p ) ;
return head ;
}
Lnode Creat_from_head( int count ){
node *head = (node*)malloc(sizeof(node)) ;
head->next = NULL ;
int num ;
while ( count -- && cin >> num ){
node *p = (node*)malloc(sizeof(node)) ;
p->data = num ;
p->next = head->next ;
head->next = p ;
}
return head ;
}
Lnode Creat_from_last( int count ){
node *head = (node*)malloc(sizeof(node)) ;
head->next = NULL ;
int num ;
node *index = head ;
while ( count -- && cin >> num ){
node *p = (node*)malloc(sizeof(node)) ;
p->data = num ;
index->next = p ;
index = p ;
}
index->next = NULL ;
return head ;
}
void output( node *head ){
node *p = head->next ;
while ( p ){
cout << p->data << " " ;
p = p->next ;
}
cout << endl ;
return ;
}
int main(){
int num ;
cin >> num ;
node *index_creat = Creat_from_last( num ) ;
output( index_creat ) ;
int pos , number ;
cin >> pos >> number ;
node *index_insert = Linklist_insert( pos , number , index_creat ) ;
output( index_insert ) ;
cin >> pos ;
node *index_delete = Linklist_delete( pos , index_creat ) ;
output( index_delete ) ;
// int len = Linklist_length( index_creat ) ;
node *index_reverse = Link_reverse_head( index_creat ) ;
output( index_reverse ) ;
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에 따라 라이센스가 부여됩니다.