단 방향 링크 (헤드 삽입 법, 꼬리 삽입 법) (선두 노드, 선두 노드 없 음) 생 성

5320 단어 C 언어 회고
말 이 많 지 않 으 면 코드 를 봐 라.
/*********************************************************************************
 *      Copyright:  (C) 2019 yyyyf
 *                  All rights reserved.
 *
 *       Filename:      .cpp 
 *
 *    Description:  This file
 *
 *        Version:  1.0.0(2019  07  25 )
 *
 *         Author:  yyyyf <[email protected]>
 *
 *      ChangeLog:  1: 2019.08.21                 
 *                  2: 2019.08.22           
 *                                
 *
 ********************************************************************************/

#include 
#include 

/********************************************************************************
*     
********************************************************************************/ 
typedef struct Linklist{
	int data;
	struct Linklist* next; 
}Linklist;

/********************************************************************************
*             : headcreate_1
*            :              (    ) 
*              :      
*              :       
*********************************************************************************/
Linklist* headcreate_1 (int n)
{
	Linklist* head,* node,* end;
	//        
	head = (Linklist* )malloc(sizeof(Linklist));
	//       
	end = head;
	end->data = 0;
	//while       
	while(n > 0)
	{
		//       
		node = (Linklist* )malloc(sizeof(Linklist));
		//  data 
		node->data = n;
		if(end) 
		//         
		end->next = node;
		//         
		end = node; 
		n--; 
	}
	//        
	end->next = NULL;
	//        
	return head;
} 

/********************************************************************************
*      	: headcreate_2 
*     	:              (    ) 
*       	:      
*       	:       
*********************************************************************************/
Linklist* headcreate_2 (int n)
{
	Linklist* head,* node;
	//        
	head = (Linklist* )malloc(sizeof(Linklist));
	//         
	head->next = NULL;
	while( n > 0 )
	{
		//       
		node = (Linklist* )malloc(sizeof(Linklist));
		//  data 
		node->data = n;
		//              
		node->next = head->next;
		//         
		head->next = node;
		n--;
	} 
	return head;
}

/********************************************************************************
*             : noheadcreate_1
*            :              (     ) 
*              :      
*              :       
*********************************************************************************/
Linklist* noheadcreate_1 (int n) 
{
	Linklist* head,* node,* end;
	head = NULL;
	for ( int i = 1;i <= n;n-- )
	{
		//       
		node = (Linklist* )malloc(sizeof(Linklist));
		//  data 
		node->data = n;
		//if          
		if( head == NULL )
		{
			//      
			head = node;
			end = head;
			//        
			continue;
		}
		//         
		end->next = node;
		//         
		end = node;
	}
	//        
	end->next = NULL;
	//        
	return head;
} 

/********************************************************************************
*             : noheadcreate_2
*            :              (     ) 
*              :      
*              :       
*********************************************************************************/
Linklist* noheadcreate_2 (int n)
{
	Linklist* head,* node,* end;
	//       
	end = (Linklist* )malloc(sizeof(Linklist));
	//         
	end->next = NULL;
	//     data 
	end->data = n--;
	//        
	head =(Linklist* )malloc(sizeof(Linklist));
	//         
	head->next = end; 
	for(int i = 0;n > i;n--)
	{
		//       
		node = (Linklist* )malloc(sizeof(Linklist));
		//  data 
		node->data = n;
		//              
		node->next = head->next;
		//         
		head->next = node;
	}
	//         
	head = node;
	return head;
} 

/********************************************************************************
*             : headprintlist
*            :          
*              :       
*              : 
*********************************************************************************/
void headprintlist(Linklist* node)
{
	Linklist *temp = node;
	//     node     
	while( temp->next != NULL )
	{
		//          ,          
		temp = temp->next;
		printf("%d ",temp->data);
	} 
	printf("
"); } /******************************************************************************** * : noheadprintlist * : * : * : *********************************************************************************/ void noheadprintlist(Linklist* node) { Linklist *temp = node; // temp while( temp != NULL ) { // , printf("%d ",temp->data); temp = temp->next; } printf("
"); } /******************************************************************************** * : * : main * : * : 0 *********************************************************************************/ int main(int argc,char const* argv[]) { int n; scanf("%d",&n); //headprintlist(headcreate_1(n)); //headprintlist(headcreate_2(n)); //noheadprintlist(noheadcreate_1(n)); //noheadprintlist(noheadcreate_2(n)); system("pause"); return 0; }

좋은 웹페이지 즐겨찾기