題目:鍵盤輸入若干個整數,按輸入數據逆序建立一個帶頭結點的單鏈表
#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;
}