#include "pch.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
typedef struct Link
{
int elem;
struct Link *next;
}link;
/*
error
初始化操作由“case”标签跳过
case 下 加 {}
*/
// 初始化链表
link * initLink();
//带头结点的初始化
link * CreateListF(int acopy[], int length);
// 求表长
int LebgthListH(link *p);
// 链表插入的函数,p是链表,elem是插入的结点的数据域,add是插入的位置
link * insertElem(link * p, int elem, int location);
//删除结点的函数,p代表操作链表,add代表删除节点的位置
link * delElem(link *p, int location);
//查找结点的函数,elem为目标结点的数据域的值
link * selectByNum(link * p, int location); // 根据序号
int selectByValue(link * p, int elem); // 根据值
//更新结点的函数,newElem为新的数据域的值
link *amendElem(link * p, int location, int newElem);
// 结点的逆置
void inverseLink(link *p);
// 显示链表
void display(link *p);
void List_Reverse(link* L);//链表转置
void MenuLinKShow()
{
// 菜单显示
printf("\n\t\t 链表的操作 \n");
printf("\n\t\t 1 求表长 \n");
printf("\n\t\t 2 求显示所有结点 \n");
printf("\n\t\t 3 退出 \n");
printf("\n\t\t 4 根据序号查找结点 \n");
printf("\n\t\t 5 根据值查找结点 \n");
printf("\n\t\t 6 插入新结点 \n");
printf("\n\t\t 7 删除结点 \n");
printf("\n\t\t 8 编辑结点信息 \n");
printf("\n\t\t 9 结点信息逆置 采用头插法 \n");
printf("\n\t\t 0 结点信息逆置 \n");
printf("\n\n");
}
// 菜单选择
void MenuLinkSelect(link *p ,char ch)
{
int length = 0; // 表长
int location = 0;
int value = 0; // 值
length = LebgthListH(p);
switch (ch)
{
case '1
线性表的链式存储及其基本操作
最新推荐文章于 2022-01-05 13:26:00 发布