链表的一些基本操作
来源:互联网 发布:本地阅读软件有声 编辑:程序博客网 时间:2024/04/28 01:22
/*单链表的基本操作*/
#include <stdio.h>
#include <stdlib.h>
#define ERROR 0
#define OK 1
struct Lnode
{
int data ;
struct Lnode *next;
}Lnode;
typedef struct Lnode *link_list;
typedef int elemType;
/*下面函数是从链表L中求取第i个结点存储的数据,并把它的值赋给e*/
int get_elem(link_list L,int i,elemType &e)
{
link_list p;
int j;
p = L->next;
j = 1;
while(p&&j<i)
{
p = p->next;
++j;
}
if(!p||j > i)return ERROR;
e = p->data;
return 0;
}
/*下面函数是在已知链表的第i处插入一个元素结点,结点值是e*/
int list_insert(link_list &L,int i,elemType e)
{
link_list p,s;
p = L;
elemType j = 0;
///*
while(p && j < i-1)
{
p = p->next;
++j;
}
s = (link_list)malloc(sizeof(Lnode));
s->data = e;
s->next = p->next;
p->next = s;
return OK;
}
/*下面的函数是从一个已经存在的链表中删除第i个结点,并把结点的值赋给e*/
int delete_list(link_list &L,int i,elemType e)
{
link_list p;
int j = 0;
p = L;
while(p&&j < i-1)
{
p = p->next;
++j;
}
if(!p || j > i-1)
return ERROR;
e = p->next->data;
p->next = (p->next)->next;
return e;
}
/*下面的函数是链表的倒置*/
int reverse_list(link_list &L)
{
link_list p = L,q = L->next;
while(q != NULL)
{
L->next = q->next;
q->next = p;
if(q->next == L)
{
q->next==NULL;
}
p = q;
q = L->next;
}
L->next = p;
return OK;
}
void main()
{
link_list L,L1,L2,L3;
L = (link_list)malloc(sizeof(Lnode));
L1 = (link_list)malloc(sizeof(Lnode));
L2 = (link_list)malloc(sizeof(Lnode));
L3 = (link_list)malloc(sizeof(Lnode));
int e;
L->next = L1;
L1->next = L2;
L2->next = L3;
L3->next = NULL;
L->data = 0;
L1->data = 10;
L2->data = 20;
L3->data = 30;
get_elem(L,3,e);
//printf("e = %d/n",e);
list_insert(L,4,40);
//printf("%d/n",((L->next)->next->next->next)->data);
//int m;
//m = delete_list(L,3,e);
//printf("%d/n",m);
//printf("%d",L->next->next->next->data);
reverse_list(L);
// printf("%d",L->data);
printf("%d/n",L->next->data);
printf("%d/n",(L->next)->next->data);
printf("%d/n",L->next->next->next->data);
printf("%d/n",L->next->next->next->next->data);
}
- 链表的一些基本操作
- 链表的一些基本操作
- 链表的一些基本操作
- 链表的一些基本操作
- “双向链表的一些基本操作”
- 关于数据结构->链表的一些基本操作
- 顺序表的一些基本操作
- 表空间的一些基本操作
- Oracle表的一些基本操作
- 对表的一些基本操作
- 单向线性表的一些基本操作
- 文件的一些基本操作
- 文件的一些基本操作
- 字符串的一些基本操作
- sql的一些基本操作
- cookie的一些基本操作
- linux的一些基本操作
- 一些数据库的基本操作
- asp.net非常实用语句
- 9个著名的管理法则
- Navigation in Silverlight 3
- 金蝶K3 ERP二次开发,定制开发
- C++ 指针函数
- 链表的一些基本操作
- 100本书的100句话,句句直刺心底
- 如何得到int float double、...的范围。
- 努力的开始
- 五个有用的过滤器 你绝对会用到的!
- 日本僧人问道弘法寺当家师
- 蓝牙配对上网找不到ActiveSync服务 & DOS网络配置出现的错误 之解决方案
- OpenGL ES概述
- 无法解析外部符号 __security_cookie