- 浏览: 2163082 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
/*---------------------------------------------------*/
/*--------------单链表的创建、插入、删除、倒置操作-----------*/
/*--------------Written by redfire250-----2005.5.10----*/
/*-----------------------------------------------------*/
#include<malloc.h>
#include<stdio.h>
#define null 0
struct student
{
long Number;
char Name[20];
long Score;
struct student *Next;
};
int n=0;/*n为全局变量,用来计算链表的结点个数*/
/*-----------------------------------------*/
/*--------------创建结点函数Creat()--------*/
/*-----------------------------------------*/
struct student *Creat()
{
struct student *p1;
struct student *p2;
struct student *head=null;
p1=p2=(struct student *)malloc(sizeof(struct student));/*开辟一段可用内存单元*/
printf("please input the student's Number Name and the Score:\n");
scanf("%ld%s%ld",&p2->Number,p2->Name,&p2->Score);
while(p2->Number!=0)
{
n++;
if(n==1) /*是否开辟的是第一个结点*/
head=p2;
else
p1->Next=p2;
p1=p2;
p2=(struct student *)malloc(sizeof(struct student));
printf("Input the Number the Name and the Score:\n");
scanf("%ld%s%ld",&p2->Number,p2->Name,&p2->Score);
}
p1->Next=null;
return(head);
}
/*------------------------------------------*/
/*--------------查看链表内容函数View()------*/
/*------------------------------------------*/
View(struct student *head)
{
struct student *p;
p=head;
while(p->Next!=null)
{
printf("%ld %s %ld\n",p->Number,p->Name,p->Score);
p=p->Next;
}
printf("%ld %s %ld\n",p->Number,p->Name,p->Score);
}
/*-------------------------------------------------*/
/*--------------插入结点函数(前插)Insert()-------*/
/*-------------------------------------------------*/
Insert(struct student *head,int Num) /*head为链表头指针,Num插入链表位置*/
{
int t=1;
struct student *p1,*p2;
p1=head;
if (Num>n||Num<0)
{
printf("input error!!!\n");
return 0;
}
while(t<Num-1) /*找到要插入结点的前一个结点*/
{
p1=p1->Next;
t++;
}
p2=(struct student *)malloc(sizeof(struct student));
printf("Input the Number the Name and the Score:\n");
scanf("%ld%s%ld",&p2->Number,p2->Name,&p2->Score);
p2->Next=p1->Next;
p1->Next=p2;
n++;
}
/*------------------------------------------*/
/*------------ 删除结点函数Delnode()--------*/
/*-----------------------------------------*/
Delnode(struct student *head,int node)
{
int t=1;
struct student *p1,*p2;
p2=head;
if (node>n||node<1)
{
printf("error!!! The node is not exist!");
return 0;
}
while(t<node-1) /*找到要删除结点的前一个结点*/
{
p2=p2->Next;
t++;
}
p1=p2->Next->Next; /*找到要删除结点的后一个结点*/
free(p2->Next); /*释放要删除的结点空间(删除)*/
p2->Next=p1; /*前一结点指向后一结点*/
n--;
}
/*-------------------------------------------------*/
/*--------------逆序重组链表Invert()-------*/
/*-------------------------------------------------*/
struct student *Invert(struct student *head)
{
struct student *p1,*p2;
p1=head;
p2=p1->Next;
head=p2->Next;
p1->Next=null;
while(head->Next!=null)
{
p2->Next=p1;
p1=p2;
p2=head;
head=head->Next;
}
head->Next=p2;
p2->Next=p1;
return head;
}
main()
{
int number1,number2;
struct student *head;
head=Creat();
View(head);
printf("the n that you want to insert:\n");
scanf("%d",&number1);
Insert(head,number1);
View(head);
printf("the node that you want to DELETE:\n");
scanf("%d",&number2);
Delnode(head,number2);
View(head);
printf("Inverte the list:\n");
View(Invert(head));
getch();
}
发表评论
-
UML
2010-08-09 11:39 1304开放分类:计算机技术计算机术语计算机科学 收藏分享到顶[6] ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 2977用WebService实现调用新 ... -
Cookie简介及JSP处理Cookie的方法
2010-07-29 09:28 973Cookie简介及JSP处理Cookie的方法 一.什么是 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1258一直想把数据库的默认 ... -
C#Winform调用网页中的JS方法
2010-07-12 11:07 2234其实还是还是相当的简单,本文将详细的用代码来展示一下如何调用, ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 1510用WebService实现调用新 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1089一直想把数据库的默认 ... -
基于 VS 2010 阐述C# 4个特性
2010-05-28 09:26 1083基于 VS 2010 阐述C# 4个特性基于 VS 20 ... -
Google AdSense中文官方博客今天公布了AdSense内容广告与AdSense搜索广告的收入分成比例
2010-05-25 09:12 1131google adsense 的广告分成比例总算是公布出来了。 ... -
权限管理数据表设计说明
2010-05-21 15:19 1085权限管理数据表设计说明 B/S系统中的权限比C/S中的更显的 ... -
权限管理的设计方法
2010-05-20 09:26 1430权限管理的设计方法是 ... -
多表分页存储过程
2010-05-17 14:25 1063分页存储过程 在网站设计,网页开发中,是要被经常遇到的。 ... -
vs2010跟vs2008比较增加了哪些功能
2010-05-18 09:10 2255随着vs2010的发布,新的 ... -
COM域名难逃实名监管 CN域名简化流程抢用户
2010-05-13 09:22 1192互联网实名制的落实第 ... -
网站安全之XSS漏洞攻击以及防范措施
2010-04-29 08:59 1436在网站开发中,安全问题是重中之重的问题,特别像一个sql注入, ... -
深入了解ASP.NET运行内幕
2010-04-28 09:04 1172做事情要知道根本所在 ... -
WebBrowser中显示乱码
2010-04-22 09:09 1740最近在开发cs项目的时候,因为嵌套了一个网页,要用到we ... -
vps配置笔记(10)架设svn服务
2010-04-21 09:41 1268linux 下面架设svn服务器,有点难度,我找了好多资料,现 ... -
IEnumerable
2010-04-16 09:12 1274在平常的代码编写中,虽然不常用到Ienumerable 但却不 ... -
JS代码实例:实现随机加载不同的CSS样式
2010-04-19 13:38 1420如果让网页浏览者每次打开页面都有新的感觉,可以通过替换css样 ...
相关推荐
单链表的操作 包括创建 删除 排序 求长度 倒置
在计算机科学中,数据...总结来说,C/C++中的单链表是通过节点间的指针连接形成的数据结构,提供了多种操作,如插入、删除、查找、遍历、反转和排序。理解和熟练掌握这些操作对于提升编程技能和解决实际问题至关重要。
06数据结构-单链表的存储结构,07数据结构-单链表的创建与遍历,08数据结构-单链表的查找和插入,09数据结构-单链表的删除和倒置,10数据结构-单链表的有序插入和排序,用C语言在Linux下写的,可以快速移植到各平台
在这个主题中,我们将深入探讨单链表的基本操作,包括创建、插入、删除、遍历以及一些高级操作。 1. **创建单链表** 创建单链表通常从一个空的头节点开始。这个头节点不存储任何数据,仅作为链表的起始点。通过向...
使用二级指针创建单链表,程序功能菜单如图所示void showMenu(){ printf("\t\t\t\t\t\t1.使用头插法创建链表\n"); printf("\t\t\t\t\t\t2.使用尾插法创建链表\n"); printf("\t\t\t\t\t\t3.按序号查找\n"); ...
题目中的代码已经实现了链表的基本创建、插入、删除等操作,并尝试实现链表的倒置,但未完成整个倒置过程。接下来,我们将详细解释如何完善这段代码以实现链表的完全倒置。 #### 链表倒置的实现原理 为了在原链表...
本项目聚焦于利用C#实现一个带有图形用户界面(GUI)的单链表操作系统,允许用户直观地进行生成、增删改、倒置和清空等操作。 首先,我们来详细解释单链表。单链表是一种线性数据结构,其中每个元素(称为节点)...
- **特点**:插入和删除操作方便,无需移动大量数据;但查找效率较低,因为只能顺序访问。 **2. 栈** - **定义**:栈是一种特殊的数据结构,遵循“先进后出”(First In Last Out, FILO)的原则。 - **操作**:主要...
在处理数据操作时,如删除有序元素、删除最小元素、合并、倒置和交换等,需要理解这两种数据结构的特点并掌握相应的操作方法。 1. **链表** - 链表是一种动态数据结构,节点之间的关系通过指针来表示,而非物理...
实验要求学生实现单链表的插入功能,以及链表的倒置操作,这涉及到了链表节点的创建、连接以及遍历。 4. **二叉树左右子树交叉互换**: 二叉树是数据结构的一种,其每个节点最多有两个子节点。实验可能要求学生...
在本文件中,我们探讨了如何使用C++进行单链表的相关操作,包括初始化、构建链表、插入元素、删除元素、判断链表是否为空以及倒置链表。 首先,`initLinkList`函数用于初始化链表,创建一个带头结点的空链表。这...
在该实验中,链表操作实现主要包括链表的创建、插入、删除、遍历等操作。链表的创建可以通过 createList_1() 和 createList_2() 两个函数来实现,这两个函数的主要区别是 createList_1() 函数从文件中读取数据,而 ...
这里我们将深入探讨单链表的基本操作,包括头插法、尾插法建立链表,删除节点,以及链表的倒置和循环链表的概念。 首先,让我们定义单链表的数据结构。在C语言中,我们通常使用结构体来表示链表节点。如题中所示,...
(3)掌握线性表的初始化/创建、插入、查找和删除操作。 二、实验内容 (1)定义一个存储整数的顺序表和单链表。 (2)编写初始化/创建、插入、查找和删除操作的算法。 (3)编写合并两个顺序存储的有序表算法和...
/*把带头结点的单链表倒置(以结点形式 )*/ node *Dao_zhi(node *head) { node *p,*s; p=head->next; head->next=NULL; while(p) { s=p; p=p->next; s->next=head->next; head->next=s; } ...
这种结构在处理顺序数据时提供了高效的操作,例如插入、删除和遍历。 一、结构设计 带头结点的双链循环线性表通常包含以下元素: 1. 数据域:存储实际的数据。 2. 前向指针:指向当前元素的前一个元素。 3. 后向...
2. **链表的创建**:创建链表需要动态分配内存来创建节点,并设置相应的数据和指针。在C语言中,可以使用`malloc()`或`calloc()`函数来实现。 3. **链表的插入**:在链表的特定位置插入新节点,通常分为在头部、...
4. 链表倒置:`Opposite.h`中的`Opposite`函数实现了链表的倒置操作。它通过交换相邻节点的前后指针,将链表反转。 5. 删除偶数节点:`Delete_Double.h`的`Delete_Double`函数实现了删除链表中所有偶数节点的功能。...
该系统旨在管理学生的基本信息,包括学号、姓名和成绩,提供一系列功能如添加学生信息、显示所有学生信息、查找特定学生、更新学生信息、删除学生信息以及倒置链表等操作。 #### 数据结构选择:链表 链表是一种...
在这个实验中,我们主要关注线性表的两种存储方式:顺序存储和链式存储,以及对线性表的一些基本操作,如插入元素、查找元素、交换元素和倒置线性表。 1. **顺序存储**:在线性表的顺序存储结构中,元素存储在一块...