小星星

别点

第1关:实践题 链表插入操作

本关任务:编写一个能向表尾插入结点,并输出链表中所有数据元素的小程序.

测试说明

平台会对你编写的代码进行测试:

测试输入:4,91,51,2,32,0;15 ;

预期输出:4,91,51,2,32,15;

测试输入:5,1,0;23

预期输出:5,1,23

提示:链表创建时,输入0表示结束。

This is me

全部代码

		    #include< iostream >
                    using namespace std ;
                    struct node
                    {
                    	int data ;
                    	struct node *next ;
                    };
                    typedef struct node *PLIST;
                    typedef struct node NODE;
                    
                    /*创建链表,并初始化链表元素*/
                    PLIST createList_link()
                    {
                    	PLIST head ,tail ,temp;
                    	int elem = -1;
                   		head = new NODE; //初始化头结点 
                   		if( head == NULL)
                    	{
                    		cout<<"分配空间失败,链表创建失败"<next = NULL;
                    	tail = head ;
                    	while(1)
                    	{
                    		cin >> elem ;
                    		if(elem == 0 ) break ;
                    		temp = new NODE ;
                    		if(temp == NULL) 
                    		{
                    			cout<<"分配空间失败,链表创建失败"<data =  elem ;
                    		temp->next = NULL ;
                    		tail->next = temp ; 
                    		tail = temp;
                    	}
                    
                    	return head ;
                    }
                    
                    void printList_link(PLIST head )
                    {
                    	/*在此处完成任务,输出head为表头的单链表数据元素*/
                    	//begin
                    	for(PLIST temp = head->next;temp!=NULL;temp=temp->next){
                    	cout<data;
                    	cout<<" ";
                    	}
                    
                    
                    //end 
                    }
                    
                    void insertDataTail(PLIST head , int insData )
                    {
                    	/*在此处完成任务,在head为表头的单链表表尾插入数据元素insData*/
                    	//begin
                    	for(PLIST temp = head;temp!=NULL;temp=temp->next){
                    		if(temp->next==NULL){
                   	 			PLIST newTen = new NODE;
                    			newTen->data =  insData ;
                    			newTen->next = NULL ;
                    			temp->next = newTen ; 
                    			temp = newTen;
                    		}
                    	}
                    
                    	//end 	
                    }
			

测试结果

两个测试集均通过