基於鏈表:鍵盤輸入若干個整數,按輸入數據逆序建立一個帶頭結點的單鏈表

題目:鍵盤輸入若干個整數,按輸入數據逆序建立一個帶頭結點的單鏈表

#include <stdio.h>
#include <stdlib.h>

typedef struct LNode{
	int data;		/* 鏈表數據 */
	struct LNode* next;	/* 鏈表指針 */
}LNode,*LinkList;

int main()
{
	int i,data,count=0;
	LinkList L;
	LinkList p;
	LinkList q;
	L = (LinkList)malloc(sizeof(LNode));
	L->next = NULL;	/* 頭結點 */
    
	q = L;
	printf("請輸入你的任意個整數,用空格隔開,輸入大寫字母Q表示結束\n");
	do                             /* 創建鏈表結點,順序輸入元素 */
	{    
		scanf("%d",&data);
		p =  (LinkList)malloc(sizeof(LNode));
		p->data =data;p->next = NULL;
		p->next = q->next;q->next = p;
		count++;
	}while(getchar() != 'Q');
    
	q = L->next;
	i = 1;
	printf("按逆序插入,鏈表中的元素如下:\n");
	while(i <= count)                /* 按序輸出鏈表元素 */
	{
		printf("NO.%d:",i);
		printf("%5d\t",q->data);
		q = q->next;
		if(0 == i%4)
		printf("\n");
		i++;
	}
	printf("\n");
	/* 釋放空間 */
	p = L->next;
	i=1;
	while(i++ <= count)                    
	{
		q = p;
		p = p->next;
		free(q);
	} 
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章