`

单链表

    博客分类:
  • C++
阅读更多
#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std;

typedef struct node{
	int index;
	struct node* next;
}ListNode;
typedef ListNode *LinkList;
LinkList head;
LinkList p;	

void addNode(ListNode *);
void showNode();
ListNode *searchByIndex(int);
void initMenu();
void CreateNodeList();
void searchByIndexHandler();
void addNode(ListNode *n){
	LinkList p1,p2;
	p1=head;
	p2=head->next;
	while(p2!=NULL){
		p1=p1->next;
		p2=p2->next;
	}
	p1->next=n;
	n->next=p2;
}
void showNode(){
	LinkList p;
	p=head->next;
	while(p!=NULL){
		cout<<p->index<<endl;
		p=p->next;
	}
}
ListNode *searchByIndex(int i){
	LinkList p;
	p=head->next;
	while(p!=NULL&&p->index!=i){
		p=p->next;
	}
	return p;
}

void initMenu(){
	system("cls"); 
	int m_iOp;
	cout<<"1.创建单链表"<<endl;
	cout<<"2.根据Index查询单链表"<<endl;
	cout<<"3.显示全部单链表的值"<<endl;
	cout<<"0.退出"<<endl;
	cout<<"请选择:";
	cin>>m_iOp;
	switch(m_iOp){
		case 1:
			CreateNodeList();
			break;
		case 2:
			searchByIndexHandler();
			break;
		case 3:
			showNode();
			break;
		case 0:
			break;
		default:initMenu();	
	}
}

void CreateNodeList(){
	system("cls"); 
	cout<<"1.创建单链表:"<<endl;
	int sn;
	while(1){
		cout<<"请输入index值:"<<endl;
		cin>>sn;
		if (sn!=-1)
		{
			p=(ListNode*)malloc(sizeof(ListNode));
			p->index=sn;
			addNode(p);
		}
		else{
			initMenu();
		}
	}
}

void searchByIndexHandler(){
	system("cls"); 
	cout<<"2.根据Index查询单链表"<<endl;
	cout<<"输入待查询Index值:"<<endl;
	int sKey;
	cin>>sKey;
	LinkList pSearch=searchByIndex(sKey);
	if (pSearch!=NULL)
	{
		cout<<pSearch->index<<endl;
	}
	else{
		cout<<"所查询的index不在链表中,按[Enter]键返回。";
		char a;
		cin>>a;
		if (a==NULL)
		{
			searchByIndexHandler();
		}
	}
}
void main(){
	head=(ListNode*)malloc(sizeof(ListNode));
	head->next=NULL;
	initMenu();
}
分享到:
评论

相关推荐

    使用C++实现单链表的基本操作:1、创建单链表2、遍历单链表3、单链表插入4、删除单链表5、判断是否为空6、单链表的

    本文将详细阐述如何使用C++来实现单链表的基本操作,包括创建、遍历、插入、删除、判断空、计算长度以及查找节点。 首先,我们从创建单链表开始。单链表是由一系列节点组成的数据结构,每个节点包含一个数据元素和...

    数据结构实验——单链表

    实验二 单链表实验 一、实验目的 1、掌握用Visual C++6.0上机调试单链表的基本方法 2、掌握单链表的插入、删除、查找、求表长以及有序单链表的合并算法的实现 二、实现内容 1、单链表基本操作的实现 在带头结点的...

    单链表 单链表 单链表 链表

    单链表是一种基础的数据结构,它在计算机科学中扮演着重要的角色,特别是在处理动态数据集合时。单链表由一系列节点组成,每个节点包含两部分:数据域和指针域。数据域存储实际的元素值,而指针域则指向链表中的下一...

    关于有序单链表的详细设计

    "关于有序单链表的详细设计" 本资源旨在设计和实现一个有序单链表,涵盖了需求分析、概要设计、详细设计、调试分析和测试结果等方面。下面是对该资源的知识点解析: 一、需求分析 1. 有序单链表的元素类型限定为 ...

    单链表的各种基本运算

    建立一个单链表,实现单链表的初始化,插入、删除节点等功能,以及确定某一元素在单链表中的位置。 (1) 初始化单链表; (2) 依次采用尾插入法插入a,b,c,d,e元素; (3) 输出单链表L; (4) 输出单链表L的长度...

    单链表的基本操作验证

    ### 数据结构实验:单链表的基本操作验证 #### 引言 计算机技术的核心之一在于如何高效地表示和处理信息,这一过程涉及数据的组织、存储和运算方式。数据结构与算法构成了程序设计的基石,正如N.Wirth教授所提出...

    单链表的创建和插入

    ### 单链表的创建与插入 #### 一、单链表基础知识 单链表是一种基本的数据结构,其中每个元素包含两部分:数据域和指针域。数据域用于存储实际的数据,而指针域则指向下一个元素。单链表的特点在于它的线性顺序...

    单链表的基本操作

    1、从键盘上依次输入21、18、30、75、42、56,逆序创建单链表,并输出单链表中的各元素值。 2、分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值。 3、删除...

    单链表的创建、插入、删除

    ### 单链表的创建、插入、删除 #### 概述 本文将详细介绍单链表的基本操作:创建、插入和删除。单链表是一种常见的线性数据结构,它由一系列节点组成,每个节点包含两部分:存储数据的数据域和指向下一个节点的指针...

    基本的单链表的线性操作

    单链表是计算机科学中数据结构的基础,它是一种线性数据结构,由一系列节点(也称为元素或项)组成,每个节点包含数据以及一个指向下一个节点的引用(或称为指针)。在单链表中,数据的存储并不连续,而是通过指针...

    单链表的基本操作及实现

    单链表是一种基础的数据结构,它在计算机科学中扮演着重要的角色,特别是在数据存储和算法设计方面。单链表由一系列节点组成,每个节点包含数据元素以及指向下一个节点的引用,最后一个节点的引用通常为null,标志着...

    线性单链表的演示详细操作

    线性单链表是计算机科学中一种基本的数据结构,它在程序设计中有着广泛的应用。本文将详细探讨线性单链表的概念、操作以及其实现方法。 线性单链表是一种顺序存储结构,由一系列相同类型的数据元素构成,每个元素...

    数据结构单链表插入、删除和修改实验报告

    数据结构单链表插入、删除和修改实验报告 一、实验目的 1.理解数据结构中带头结点单链表的定义和逻辑图表示方法。 2.掌握单链表中结点结构的JAVA描述。 3.熟练掌握单链表的插入、删除和查询算法的设计与JAVA实现...

    实验报告2 单链表的操作

    ### 实验报告2 单链表的操作 #### 一、实验背景与目标 本实验的主要目的是让学生通过实际操作,理解并掌握单链表这一基本的数据结构。单链表是一种线性表,其中每个元素都是一个节点,每个节点包含两部分:存储...

    Java实现单链表以及单链表的操作.zip

    单链表是一种简单但灵活的数据结构,常用于实现各种抽象数据类型,如队列、栈和映射。本教程将深入探讨如何使用Java语言来实现单链表及其相关操作。 首先,我们来理解单链表的基本概念。单链表由一系列节点组成,每...

    单链表建立、插入、删除

    单链表是计算机科学中数据结构的基础之一,它在存储和处理动态数据集时非常有用。本实验将探讨如何建立、插入和删除单链表节点,这些都是理解和操作链式数据结构的关键技能。 首先,让我们详细了解单链表的概念。...

    实验报告1.3单链表的设计与实现

    ### 单链表的设计与实现 #### 一、实验背景及目标 本次实验的主要目的是让学生通过实际编程操作来深入理解单链表这一重要的线性数据结构,并熟练掌握单链表的基本操作,包括但不限于单链表的创建、遍历、查询、...

    单链表的基本操作(实验)

    (1) 从键盘读入一组整数,按输入顺序形成单链表。并将创建好的单链表元素依次打印在屏幕上。(注意:选择头插法或者尾插法!) (2) 设计一个带选择功能菜单的主函数,菜单中至少具备任意选择删除、插入、查找...

Global site tag (gtag.js) - Google Analytics