#include<stdio.h>
#include<stdlib.h>//因为使用malloc动态空间
#define N sizeof(node)
// 结点定义
typedef struct linknode
{
char data;
struct linknode * next;
}node,*linklist;
node *head; // 定义一个全局头指针
//建表并且输入内容,结束标记位‘#
void InputList()
{
node *r,*s;
char x;
int T=1,n=0;
head=(node*)malloc(N);
r=head;
printf("\n\t建立一个线性表");
printf("\n\t请逐个输入字符,结束标记位‘#’\n");
while(T)
{
printf("\t\t请输入:");
fflush(stdin);//===============为什么必须加上 scanf("%c",&x);才不会出现 ”两遍的 请输入: 请输入:“
/*清除标准输入设备(一般是键盘)的缓存。往往适用于截获输入特殊值,例如每次读取一个输入的字符,
但是如果你输完一个字符后敲了回车,回车是一个特殊的键,会产生2个字符,因此程序会认为你输入了3个字符,
此时可以用读取一个字符后用这个函数清除键盘缓存,从而清除回车的影响。*/
scanf("%c",&x);
if(x!='#')
{
s=(node*)malloc(T);
n++;
s->data=x;