c语言 建立线性表 链式
来源:互联网 发布:东莞网络炒作团队 编辑:程序博客网 时间:2024/06/16 12:50
1.实验目的及要求
通过本实验,进一不了解线性表的操作,熟悉线性表的运算,了解链式存储结构的实现方法和在链式存储条件下实现线性的相关操作。
2.实验内容
用C 语言设计在链式存储结构下,建立、插入、删除、访问及输出线性表的程序。
3.实验类型:验证性实验。
#include
#include
typedef char elemtype;
typedef struct dnode
{elemtype data;
struct dnode *prior;
struct dnode *next;
}dlinklist;
void displist(dlinklist *L);
int listlength(dlinklist *L);
void list (void);
void initlist (dlinklist *&L);
void destorylist (dlinklist *L);
int listempty(dlinklist *L);
void listdelete (dlinklist *L,int i,elemtype&e);
void getelem (dlinklist *L,int i, elemtype&e);
int locateelem(dlinklist *L,elemtype e);
int listinsert (dlinklist *L,int i, elemtype e);
#include "head.h"
int length;
#include "head1.h"
int main (void)
{char ch;
dlinklist *L;
elemtype e;
int i;
while(1)
{list();
}
return 0;
}
#include
void list (void)
{printf("***************************************\n");
printf("1:初始化链表
printf("3:求元素个数
printf("5: 取第i元素
printf("7:插入元素e
printf("9: 删除第i元
printf("***************************************\n");
printf("
}
#include"head.h"
extern int length;
void destorylist (dlinklist *L)
{ dlinklist *p=L->next;
if (length!=0)
{while(p!=L)
length=0;
}
}
void displist(dlinklist *L)
{dlinklist *p=L->next;
while(p!=L)
{printf("%c
printf("\n");
}
void getelem (dlinklist *L,int i, elemtype&e)
{int j=1;dlinklist *p=L->next;
while(p!=L&&j
{p=p->next;j++;}
e=p->data;
}
extern int length;
void initlist (dlinklist *&L )
{
L=(dlinklist *)malloc(sizeof(dlinklist));
if(!L)
printf("初始化失败!\n");
else
{length=0;L->next=L->prior=L;}
}
void listdelete (dlinklist *L,int i,elemtype&e)
{dlinklist *p=L->next;
int j=1;
while(p!=L&&j
{p=p->next;j++;}
if(j==i)
{p->prior->next=p->next;
p->next->prior=p->prior;
e=p->data;free(p);
length--;}
}
int listempty(dlinklist *L)
{
int i=0;
dlinklist *p=L->next;
}
int listinsert (dlinklist *L,int i, elemtype e)
{dlinklist *p=L->next,*q;int j=1;
{q=(dlinklist *)malloc(sizeof(dlinklist));