线性表的链式存储及其基本操作

#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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值