您的位置:首页 > 其它

今天有点忙,拙劣地写了个链表 头插入法,尾插入法。

2010-05-23 00:25 218 查看
//链表

//这个有问题。

#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;

}

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: