不带头结点的单链表
1.实验目的
1、熟练掌握动态链表结构及有关算法的设计方法。
2、理解不带头结点的单链表的特点,掌握其基本操作。
3、熟练掌握运用不带头结点链表表示特定形式的数据的方法,并设计出相关算法。
2.实验内容
1、用尾插法建立带头指针的单链表
2、打印
3、删除列表中所有奇数
4、有序表插入
5、两降序表合并成升序表
3.设计思路
首先通过尾插法或头插法创建一个不带头结点的单链表,然后基于链表完成打印、删除、插入、合并等操作,每次都要通过打印函数输出。
4.实验代码
#include <stdio.h>
#include <stdlib.h>
#define newNode (LinkedList *)malloc(sizeof(LinkedList))
typedef struct k
{
int data;
struct k *next;
} LinkedList;
/**********************************************/
//1.建表:尾插法
//函数功能:用尾插法建立带头指针的单链表
//函数参数:空
//函数返回值:指向LinkedList类型变量的指针head
//函数名:TailInsert()
/**********************************************/
LinkedList *TailInsert()
{
int x;
LinkedList *head, *p, *tail;
printf("input the node number(end with -1):");
scanf("%d",&x);
if(x==-1)
return NULL; //头指针的值为-1,直接返回
//以下的操作与头节点型的单链表相同
head=(LinkedList *)malloc(sizeof(LinkedList)); //创建头指针,为头指针开辟内存空间
he

最低0.47元/天 解锁文章
1749

被折叠的 条评论
为什么被折叠?



