#include<stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef char ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Node,*LinkList;
void InitList(LinkList *L) // 初始化单链表
{
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;
}
void CreateFromHead(LinkList L)
/* L是带头结点的空链表头指针,通过键盘输入表中元素值,利用头插法建单链表L*/
{
Node *s;
char c;
int flag = 1;
while (flag) // flag初值为1,当输入“$”时,置flag为0,建表结束
{
c = getchar();
if (c != '$')
{
s = (Node*)malloc(sizeof(Node)); //建立新结点
s->data = c;
s->next = L->next; //将s结点插入表头
L->next = s;
}
else flag = 0;
}
}
void CreateFromTail(LinkList L)
/* L是带头结点的空链表头指针,通过键盘输入元素值,利用尾插法建单链表L */
{
Node *r, *s;
int flag = 1; //设置一个标志,初值为1,当输入“$"时,flag为0,建表结束
r = L; //*r指针动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点
char c;
while (
数据结构:头插法尾插法建单链表(可选)
最新推荐文章于 2024-08-27 22:33:19 发布
本文详细介绍了数据结构中单链表的头插法和尾插法建立链表的过程,包括算法步骤和示例代码,帮助理解这两种插入方法的原理及其在实际操作中的应用。
摘要由CSDN通过智能技术生成