当前位置:
文档之家› 数据结构线性表的主要程序代码
数据结构线性表的主要程序代码
}
}
/*************主程序**********************/
main()
{
LinkList *L;
int len;
int n=0;
int x=15;
int y;
int i=4;
L = (LinkList*)malloc(sizeof(struct Lnode));
/*L->data = 0;*/
{
L->length = 0;
}
/*******Creat SqList********/
void Create_SqList(SqList *L)
{
int i=0;
InitList(L);
printf("input SqList.data\n");
scanf("%d",&L->data[0]);
while(L->data[i]!=-1)
{ /*定义线性表的单链表存储结构*/
int data;
struct Lnode *next;
}LinkList;
/****************单链表的初始化*************************/
Initlist(LinkList *L)
{ /*动态申请存储空间*/
L = (LinkList *)malloc(sizeof(struct Lnode));/*建立头结点*/
{
p = (LinkList*)malloc(sizeof(struct Lnode));
printf("input a value\n");
scanf("%d",&p->data); /*输入元素值
p->next = L->next;
L->next = p;
/*插入到表头
}
} /* Create_L */
L->next = NULL;
}
/*************建立一个带头结点的单链表,在表尾插入***************/
Create_L(LinkList *L,int n)
{
LinkList *p,*q; int i;
Initlist(L); /*单链表初始化*/
q=L;
printf("input the value\n");
数据结构顺序表的主要代码(LIZHULIN)
1./***有头结点的单链表的初始化、建立(表头插入、表尾插入)、求长度、插入、删除、输出***/
/***********单链表的初始化、建立、输出*****************/
#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode
/********* the length of SqList****************/
int ListLength(SqList *L)
{
return L->length;
}
/************ GetElem L->data[i]************/
int length;
}SqList;
/********** InitList ************/
void InitList(SqList *L)
{
L->length = 0;
}
/************ Creat SqList*************/
void Create_SqList(SqList *L)
len=Length_LinkList(L);
printf("the length of L is %d",len);*/
display(L);
getch();
}
2./***无头结点的单链表建立、插入、求长度、插入、删除、输出*****/
#include<stdio.h>
#include<stdlib.h>
return i;
}/*Length_LinkList*/
/*************************在第i个结点前插入数据x *********************/
Insert_LinkList(LinkList *L, int i, int x)
{
LinkList *p,*s;
int j=0;
s->next=p->next;
p->next=s;
}
/*********************删除第i个元素,并用y将其值返回************************/
int Delete_LinkList(LinkList *L, int i)
{
LinkList *p,*q;
int y;
/*******************单链表值的输出****************/
void display(LinkList *L) /*字母链表的输出*/
{
LinkList *p;
p=L->next;
while (p!=NULL)
{
printf("%d ",p->data);
p=p->next;
void Display_SqList(SqList *L)
{
int i,n;
n=ListLength(L);
printf("the length is %d ",n);
for(i=0;i<n;i++)
printf("%d ", L->data[i]);
}
/****************Main()**************************/
typedef struct Lnode
{ /*定义线性表的单链表存储结构*/
int data;
struct Lnode *next;
}LinkList;
/*************Create ***************/
Link_Creat(LinkList *L,int n)
{
LinkList *q,*p;
p = (LinkList*)malloc(sizeof(struct Lnode));
printf("input the value\n");
scanf("%d",&p->data); /*输入元素值
L->next = p;
p->next = NULL;
/*将第二个及后面的数据插入
for(i = n-1;i>0;--i)
L->next =NULL;
printf("input the length of L ,n\n");
scanf("%d",&n);
printf("\n");
Create_L(L,n);
Insert_LinkList(L, i, x);
/* y=Delete_LinkList(L,i);
printf("the delete elment is y=%d\n",y);
int j=0;
p=L;
/*寻找第i个结点*/
while(j<i-1 && p!=NULL)
{
++j;
p=p->next;
}
if (!p) return 0;/*如果表长小于i,则无意义*/
q=p->next;
y=q->data;
p->next=q->next;
free(q) ;
return y;
} /*Delete_LinkList*/
/*************************求单链表的长度***********************/
int Length_LinkList(LinkList *L)
{
LinkList *p;
int i=0;
p=L->next;
while(p!=NULL)
{
i++;
p=p->next;
}
for(i = n;i>0;--i)
{
p = (LinkList*)malloc(sizeof(struct Lnode));
scanf("%d",&p->data); /*输入元素值*/
q->next = p;
p->next = NULL;
q=p;
/*插入到表尾*/
}
} /* Create_L */
{
++i;
scanf("%d",&(L->data[i]));
}
L->length = i;
}
/********* the length of SqList****************/
int ListLength(SqList *L)
{
return L->length;
}
/************ GetElem L->data[i]************/
main()
{
SqList *L;