码迷,mamicode.com
首页 > 其他好文 > 详细

线性表的链式存储结构及相关操作

时间:2016-04-19 17:28:46      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime> 
typedef struct node{
	int data;
	struct node *next;
}node;
typedef struct node *LinkList; 

int GetElem(LinkList L,int i,int *e){	//获取元素 
	int j;
	LinkList p;
	p = L->next;
	j = 1;
	while(p && j<i){
		p = p->next;
		++j;
	}
	if(!p||j>i) return 0;
	*e = p->data;
	return 1;
}
int ListInsert(LinkList *L,int i,int e){	//插入操作 
	int j;
	LinkList p,s;
	p = *L;
	j = 1;
	while(p && j<i){
		p = p->next;
		++j;
	}
	if(!p || j>i) return 0;
	s = (LinkList)malloc(sizeof(node));
	s->data = e;
	s->next = p->next;
	p->next = s;
	return 1;
}
int ListDelete(LinkList *L,int i,int *e){	//删除操作 
	int j;
	LinkList p,q;
	p = *L;
	j = 1;
	while(p->next && j<i){
		p = p->next;
		++j;
	}
	if(!(p->next)||j>i) return 0;
	q = p->next;
	p->next = q->next;
	*e = q->data;
	free(q);
	return 1; 
}
void CreateListHead(LinkList *L,int n){	//头插入法 
	LinkList p;
	int i;
	srand(time(0));
	*L = (LinkList)malloc(sizeof(node));
	(*L)->next = NULL;
	for(i=0;i<n;i++){
		p = (LinkList)malloc(sizeof(node));
		p->data = rand()%100+1;
		p->next = (*L)->next;
		(*L)->next = p;
	}
}
void CreateListTail(LinkList *L,int n){	//尾插入法 
	LinkList p,r;
	int i;
	*L = (LinkList)malloc(sizeof(node));
	r = *L;
	for(i=0;i<n;i++){
		p = (LinkList)malloc(sizeof(node));
		p->data = i+1;
		r->next = p;
		r = p;
	}
	r->next = NULL;
}
void ClearLisk(LinkList *L){
	LinkList p,q;
	p = (*L)->next;
	while(p){
		q = p->next;
		free(p);
		p = q;
	}
	(*L)->next = NULL;
}
int main(){
	return 0;
}

  

线性表的链式存储结构及相关操作

标签:

原文地址:http://www.cnblogs.com/zhuozhuo/p/5408650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!