链表的基本操作--包子
来源:互联网 发布:软件工程硕士报考条件 编辑:程序博客网 时间:2024/04/29 08:51
// 链表.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define elemtype char //定义链表中的数据类型,自己可以改
//定义链表节点类型
typedef struct node
{
elemtype data;
struct node *next;
}node,*linklist;
//链表的初始化即一个头结点
int initlist_L(linklist &L)
{
L=(node*)malloc(sizeof(node)); //向系统申请一个头结点
if(L==NULL)
return 0;
L->next =NULL;
return 1; //初始化成功
}
//从单链表中获取第i个元素
int GetElem_L(linklist L, int i, elemtype& e)
{
linklist p;
int j;
p=L->next ; //初始化,p指向第一个节点
j=1;
while(p&&j<i) //顺时针查找,知道找到p,或p为空
{
p=p->next ;
++j;
}
if(!p||j>i) //第i个元素不存在
{
cout<<"i值不合法"<<endl;
return 0;
}
e=p->data ;
cout<<"成功!";
return 1;
}
//插入节点
int ListInsert_L(linklist &L, int i, elemtype e)
{
linklist p,s;
int j;
p=L;
j=0;
while(p&&j<i-1) //寻找第i-1个节点
{
p=p->next ;
++j;
}
if(!p||j<i-1)
{
cout<<"i值错误!"<<endl;
return 0;
}
linklist f;
f=(linklist)malloc(sizeof(node));
f->data =e;
f->next =p->next ;
p->next =f;
cout<<"插入成功!"<<endl;
return 1;
}
//删除链表的节点
int ListDelete_L(linklist &L, int i, elemtype &e)
{
linklist p,q;
int j;
p=L;
j=0;
while(p->next &&j<i-1)
{
p=p->next ;
++j;
}
if(!(p->next )||j>i-1)
{
cout<<"i值非法"<<endl;
q=p->next ;
e=q->data ;
p->next =q->next ;
delete(q);
cout<<"删除成功"<<endl;
return 1;
}
}
//创建新的单链表
void CreateList_L(linklist &L,int n)
{
linklist p;
int i;
L=(linklist)malloc(sizeof(node));
L->next =NULL;
scanf(&p->data );
p->next =p;
}
int main()
{
return 0;
}
- 链表的基本操作--包子
- 包子的爱情
- 吃包子的算法
- 包子
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- 链表的基本操作
- linux下vi编辑器命令大全
- 优秀Java程序员必须了解的GC工作原理
- JINI介绍
- 算算职场薪水账 到手3000元税前工资约3760元
- xmlHttp的readyState 和 status参数详解
- 链表的基本操作--包子
- 瞎想:IBM的cognos应该收购FusionCharts产品,加强图形效果展示
- INFORMIX--oncheck
- 如何正常关闭android应用
- 理解cookie和session机制
- Ajax应用的新“爬虫”机制
- 以支持多种浏览器的方式创建 XMLHttpRequest 对象
- const,readonly和static readonly的区别
- ecshop2.7.2中调用语言切换,实现多国语言