单链表数据结构C语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单链表的建立(头插法)

写一算法用头插法建立无头结点的单链表,结果返回单链表的头指针typedef char DataType;

typedef struct node{

DataType data;

struct node *next;}ListNode;

typedef ListNode *LinkList;

LinkList CreateListF(void)

{

char ch;

LinkList head;

ListNode *s;

head=NULL;

ch=getchar();

while(ch!='\n')

{s=(ListNode*)malloc(sizeof(ListNode));

s->data=ch;

s->next=head;

head=s;

ch=getchar();

}

return(head);

}

单链表的打印

写一算法打印不带头结点的单链表head中每个结点的值

typedef char DataType;

typedef struct node{

DataType data;

struct node *next;}ListNode;

typedef ListNode *LinkList;

void PrintList(LinkList head)

{ListNode *p;

for(p=head;p;p=p->next)

printf("%c",p->data);

printf("\n");

}

单链表的建立(尾插法)

写一算法用尾插法建立无头结点的单链表,结果返回单链表的头指针typedef char DataType;

typedef struct node{

DataType data;

struct node *next;}ListNode;

typedef ListNode *LinkList;

LinkList CreateListR(void){

char ch;

LinkList head;

ListNode *s,*r;

head=NULL;

r=NULL;

while ((ch=getchar())!='\n')

{s=(ListNode *)malloc(sizeof(ListNode));

s->data=ch;

if (head==NULL)

head=s;

else

r->next=s;

r=s;

}

if (r!=NULL)

r->next=NULL;

return(head);

}

单链表的建立(尾插法)

写一算法用尾插法建立带头结点的单链表,结果返回单链表的头指针typedef char DataType;

typedef struct node{

DataType data;

struct node *next;

}ListNode;

typedef ListNode *LinkList;

LinkList CreateListR1(void)

{

char ch;

LinkList head=(ListNode *)malloc(sizeof(ListNode)); ListNode *s,*r;

r=head;

while ((ch=getchar())!='\n')

{

s=(ListNode *)malloc(sizeof(ListNode));

s->data=ch;

r->next=s;

r=s;

}

r->next=NULL;

return(head);

}

单链表的打印

写一算法打印带头结点的单链表head中每个结点的值typedef char DataType;

typedef struct node{

DataType data;

struct node *next;}ListNode;

typedef ListNode *LinkList;

voidPrintList(LinkList head)

{

ListNode *p;

for(p=head->next;p;p=p->next)

printf("%c",p->data);printf("\n");

}

单链表的查找

写一算法在带头结点的单链表head中查找第i个结点typedef char DataType;

typedef struct node{

DataType data;

struct node *next;

}ListNode;

typedef ListNode *LinkList;

LinkList GetNode(LinkList head,int i)

{int j;

ListNode *p;

p=head;

j=0;

while (p->next && j

{p=p->next;j++;}

if (i==j)

return(p);

else

return(NULL);

}

单链表的查找

写一算法在带头结点的单链表head中查找其值为key的结点typedef char DataType;

typedef struct node{

DataType data;

struct node *next;}ListNode;

typedef ListNode *LinkList;

相关文档
最新文档