//链表
//这个有问题。
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
typedef struct node{
datatype data;
struct node *next;
}linklist;
//头插入法
linklist *createList()
{
char ch;
linklist *head,*p;
head=NULL;
ch=getchar();
while(ch!='#')
{
p=(linklist *)malloc(sizeof(linklist));
p->data=ch;
p->next=head;
head=p;
ch=getchar();
}
return head;
}
//尾插入法
linklist *createListTail()
{
char ch;
linklist *p,*head,*e;
ch=getchar();
while(ch!='#')
{
p=(linklist *)malloc(sizeof(linklist));
p->data=ch;
if(head==NULL) head=p;
else e->next=p;
e=p;
ch=getchar();
}
if(e!=NULL) e->next=NULL;
return head;
}
void display(linklist *L)
{
linklist *p;
p=L;
while(p->next)
{
printf("%c ",p->data);
p=p->next;
}
}
int main()
{
linklist *L1,*L2;
// L1=(linklist *)malloc(sizeof(linklist));
// L2=(linklist *)malloc(sizeof(linklist));
// display(L2);
L1=createList();
// L2=createListTail();
display(L1);
// display(&L2);
return 0;
}
/*
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
char data;
struct node *next;
}linklist;
linklist *creatList1()
{
char ch;
linklist *head,*p,*q;
int i=1;
head=NULL;
printf("/n请输入一个链表最后一个字符");
scanf("/n%c",&ch);
while(ch!='#')
{
p=(linklist *)malloc(sizeof(linklist));
p->data=ch;
p->next=head;
head=p;
printf("/n已建%d个字符的链表",i);
q=head;
while(q!=NULL)
{
printf("%c->",q->data);
q=q->next;
}
printf("NULL");
i++;
printf("/n请输入第%d个字符",i);
scanf("%c",&ch);
}
return (head);
}
linklist *creatList()
{
char ch;
linklist *head,*q,*p,*e;
int i=1;
printf("/n请输单字符链表的第一个字符");
head=NULL;
e=NULL;
scanf("%c",&ch);
while(ch!='#')
{
p=(linklist *)malloc(sizeof(linklist));
p->data=ch;
if(head==NULL) head=p;
else e->next=p;
e=p;
p->next=NULL;
printf("/n已建立%d个字符的链表",i);
q=head;
while(q!=NULL)
{
printf("%c->",q->data);
q=q->next;
}
printf("NULL");
i++;
printf("/n请输入单字符链表的第%d个字符",i);
scanf("%c",&ch);
}
return (head);
}
int main()
{
linklist *p;
int ch;
while(1)
{
printf("/n请选择:");
printf("/n(1)头插入法");
printf("/n(2)n尾插入法");
printf("/n(3)结束");
scanf("/n%d",&ch);
switch(ch)
{
case 1:p=creatList();break;
case 2:p=creatList();break;
case 3:return 0 ;
}
}
return 0;
}
*/