链表的操作

1、创建,数据来自文件

2、显示

3、查找(显示比较次数)

4、插入

5、删除(显示比较次数)

6、将链接存储线性表逆置,即最后一个结点变成第1个结点,原来倒数第2个结点变成第2个结点,如此等等。

[解题思路]  从头到尾扫描单链表L,将第1个结点的next域置为NULL,将第2个结点的next域指向第1个结点,将第3个结点的next域指向第2个结点,如此等等,直到最后一个结点,便用head指向它。

提高题:

7*、将一个首结点指针为a的单链表A分解成两个单链表A和B,其首结点指针分别为a和b,使得链表A中含有原链表A中序号为奇数的元素,而链表B中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。

[解题]  将单链表A中序号为偶数的元素删除,并在删除时把这些结点链接起来构成单链表B即可。

 

/************  COPYRIGHT(C) 2017 DongfangHU *****/
/*****实验名称:链表的基本操作 
/**** 实验平台:Dec-c++ 
/*****作者:DongfangHU 
/*****
/*****时间:2017-07-11 
/************************************************/ 
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<windows.h> 
using namespace std;

typedef struct LIST
{
	int num;
	LIST*next;
}List;


/*****************/
List*Creat(List*head);
void Visit(List*head);
void Search(List*head,int num);
List*Insert(List*head,int num,int position);
List*Delete(List*head,int num);
List*Nizhi(List*head);
List*Split(List*head);
void color(short x); 
/******************/
//int n=0;

int G=1;


int main()
{
	List*head=NULL;
	head= new List;
	head->num=-1;
	
	head->next=NULL;
	
	
	while(1)
	{
		cout<<endl<<endl<<endl;
	 color(8);	
	cout<<"    *********************************************************************"<<endl;
	 color(14);
	cout<<"                               1.载入数据&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值