关闭

单链表复习

标签: 单链表
361人阅读 评论(0) 收藏 举报
分类:

单链表复习


作者:vpoet

mails:18200268879@163.com

注:转载请注明出处,谢谢合作


#include <iostream>
#include <stack>
using namespace std;

typedef struct ListNode
{
	int data;
	struct ListNode* next;
}NODE;

NODE *CreateList()
{
	NODE * head,*p,*s;

	head=(NODE*)malloc(sizeof(NODE));
	p=head;

	int LinkData;
	int InputIndex=1;
	while(InputIndex)
	{
		cout<<"Please input the Node data.(if 0 is inputed,CreateLink Over!): ";
		cin>>LinkData;
		if(0!=LinkData)
		{
			s=(NODE*)malloc(sizeof(NODE));
			s->data=LinkData;
			p->next=s;
			p=s;
		}
		else
		{
			InputIndex=0;
		}
	}

	head=head->next;
	p->next=NULL;

	return head;
}

void Print(NODE *head)
{
	NODE *p=head;
	cout<<"The LinkList is: ";
	while(p!=NULL)
	{
		cout<<p->data<<"  ";
		p=p->next;
	}
}

void ListLength(NODE*head)
{
	
	NODE* p=head;
	int count =0;
	while(p!=NULL)
	{
		count++;
		p=p->next;
	}
	cout<<"The length is: "<<count<<endl;
}

void InsertNode(NODE* head)
{
	NODE *p=head;
	
	while(p->next!=NULL)
	{
		p=p->next;
	}

	NODE *New;
	New=(NODE*)malloc(sizeof(NODE));
	cout<<"Please input the new data: ";
	cin>>New->data;
	p->next=New;
	New->next=NULL;
	
	head=p;
}

void ReversePrint(NODE* head)
{
	stack <NODE*> StackNode;
	NODE *p=head;
	while(p!=NULL)
	{
		StackNode.push(p);
		p=p->next;
	}
	cout<<"Reverse to Print: ";
	while(!StackNode.empty())
	{
		NODE* temp;
		temp=StackNode.top();
		StackNode.pop();
		cout<<temp->data<<" ";
	}
}

void DeleteNode(NODE *head,int DelValue)
{
	NODE *p=head;
	
	while(p!=NULL)
	{
		if(p->next->data==DelValue)
		{
			p->next=p->next->next;
			break;
		}
		else
		{
			p=p->next;
		}
	}
	head=p;
}


int main()
{
	cout<<"Create New LinkList....\n"<<endl;
	NODE *p=CreateList();
	cout<<"Print the LinkList.....\n"<<endl;
	Print(p);
	cout<<"Print the length of LinkList...\n"<<endl;
	ListLength(p);

	cout<<"Insert a New LinkNode....\n"<<endl;
	InsertNode(p);
	cout<<"Cout The New LinkNode....\n"<<endl;
	Print(p);

	cout<<"Reverse to input the LinkList...\n"<<endl;
	ReversePrint(p);

	cout<<"Delete a Node in LinkList....\n"<<endl;
	int DelValue;
	cout<<"Please input the Delete Node Value"<<endl;
	cin>>DelValue;
	DeleteNode(p,DelValue);
	cout<<"Print the del Node LinkList....\n"<<endl;
	Print(p);
	cout<<endl;
	return 0;
}


1
0
查看评论

java数据结构实验数据结构主要内容复习

**实验一、单链表的基本操作 山东建筑大学网络工程121班马琳源码都是自己所做,只供学习用, 一、实验目的 1、掌握线性链表的操作特点,即指针是逻辑关系的映像。 2、掌握动态产生单链表的方法。 3、熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。 4、熟练掌握单链表的取元素操作...
  • u011488009
  • u011488009
  • 2016-01-03 18:54
  • 571

复习单链表的实现

大三了,作为非计算机专业的学生,找工作真的有点压力,过几天就是暑期实习生的面试了,我知道这是最后的一次机会,所以一定好好复习,最近把数据结构看了一遍,从基本的数组链表,到高级的红黑树,哈希表,决定都用博客来记录一下,以下是单链表的实现:/*****************************单链...
  • zpxly
  • zpxly
  • 2013-05-29 21:27
  • 505

前端复习--翻转单链表

动机出于面试需要,因为之前就看过这些内容,所以其实不怎么费劲 现在再次献上js翻转单链表的代码:(参考) (function (){ var node3 ={ //定义有三个节点的链表,这里要注意由与js是顺序解释的,如果开始定义node1,再定义node2,node1.next = nod...
  • hellokingqwe
  • hellokingqwe
  • 2016-10-16 11:39
  • 121

单链表复习篇

/* ********************************************************** *FileName:list.h *Function: *Version:version_1 *Author:yuanweikang *Date:2015/7/30 *Note...
  • u012607780
  • u012607780
  • 2015-07-30 10:43
  • 291

【复习代码】单链表

没有单独编写头文件和测试函数,写在同一个文件中。详细解释在【复习笔记】 #include  #include #define TURE  1 #define FALSE 0 typedef int data_t; typedef struct ...
  • Shine_Wanna
  • Shine_Wanna
  • 2016-09-29 18:24
  • 147

【复习笔记】单链表

单链表的一般方法(有头结点head): 1、创建一个空链表 head->next = NULL; return head; 2、将链表清零 定义一个指向头结点的链表指针,只要head->next != NULL,就遍历链表,并使定义的链表指针指向head...
  • Shine_Wanna
  • Shine_Wanna
  • 2016-09-29 17:47
  • 242

复习数据结构—单链表

抽空复习并实战了数据结构—单链表,在此记录一下。 package com.dev.dontworry; /** * Created by 邓耀宁 on 2018/2/5. */ public class MyLinkedList { private Node head; ...
  • dengyaoning
  • dengyaoning
  • 2018-02-05 17:41
  • 9

Python基础知识复习整理(1)

之前对python有一定的了解,最近不是很忙又重新看了一下基础知识,将重要的知识点整理了一下做了笔记。
  • wutong9509
  • wutong9509
  • 2017-04-12 17:29
  • 413

HTML5基础复习

1.最新版本的safari、firefox、chrome等都已兼容HTML5,IE在IE9之后兼容,IE9之前,可以使用菜鸟教程的静态资源包html5shiv: <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7...
  • qq_32931975
  • qq_32931975
  • 2017-02-26 15:09
  • 224

期末复习总结

与贺利坚老师玩了一个学期的反转课堂,感受颇深,首先感谢老师的辛勤付出,说真的,老师为我们付出的太多,在这说一声谢谢老师。说实话,通过反转课堂学习我是第一次,起初我还以为是预习的工具,我想我错了,在前几个周的时候,并不是太适应,看视频有时候也老走神,不过慢慢的就适应了这种学习方式,也逐渐发现这种方式的...
  • gkq_comeon
  • gkq_comeon
  • 2015-12-18 09:03
  • 706
    《我们终将独自长大》

    有一天你将破蛹而出,成长得比人们期待的还要美丽,但这个过程会很痛,会很辛苦,有时候还会觉得灰心。面对着汹涌而来的现实觉得自己渺小无力。但这,也是生命的一部分。做好现在你能做的,然后,一切都会好的。我们都将孤独地长大,不要害怕。

    个人资料
    • 访问:395952次
    • 积分:6877
    • 等级:
    • 排名:第4030名
    • 原创:307篇
    • 转载:8篇
    • 译文:2篇
    • 评论:26条
    个人介绍
    博客专栏
    最新评论