线性表重点
Posted claudia529
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表重点相关的知识,希望对你有一定的参考价值。
第i个数据元素的存储位置是:LOC(ai)=LOC(a1)+(i-1)*m
线性表的表长表示为(*L).len或者L->len。第i个元素写为L->v[i-1]
单链表的头指针指向头结点称其为带头结点的单链接。若无特别说明,用的都是带头结点的单链表。
p->data表示p指向的结点的数据域。
p->next表示p指向的结点的指针域。
p=(Lnode *)malloc(sizeof(Lnode);
free(p)释放p所指向的结点空间。
单链表的相关操作
#include<stdio.h> #include<stdlib.h> typedef char elmentype; typedef struct node elementype data; struct node *next; Lnode,*linklist;//Lnode结点类型,linklist是指向结点的指针类型 void main() Lnode *h; Lnode *creat(); h = creat(); Lnode *creat()//头插法 elementype ch; h=(Lnode *)malloc(sizeof(Lnode));//建立头结点 h->next=NULL;//使头结点的指针域为空 while((ch=getchar(!)=‘\n‘)) p=(Lnode *)malloc(sizeof(Lnode));//建立新结点p p->data=ch;//ch赋给p的数据域 p->next=h->next;//改变指针状况 h->next=p;//h的直接后继是p return h; Lnode *creat()//尾插法 Lnode *h,*p,*t; elementype ch; h = (Lnode *)malloc(sizeof(Lnode)); h->next=NULL; t=h; while((ch=getchar()!=‘\n‘)); p=(Lnode *)malloc(sizeof(Lnode)); p->data=ch; p->next=NULL; t->next=p;//t指向最后一个元素 t=p; return h; int lenth(Lnode *h) Lnode *p; int i = 0; p = h->next;//p访问第一个结点 while(p) i++; p=p->next; return i; void insert(Lnode *p,elementype x)//值为x的结点插在p后 Lnode *s; s = (Lnode *)malloc(sizeof(Lnode));//生成结点s s->data = x; s->next = p->next; p->next = s; int insert(Lnode *h,int i,elementype x)//第i个元素中插入一个元素 Lnode *p,*s; int j=0; p=h; while(p&&(j<i-1))//找第i-1个结点 p=p->next; j++; if(p) s = (Lnode *)malloc(sizoef(Lnode)); s->data=x; s->next=p->next; p->next=s; return 1; else return 0; void dele(Lnode *p) Lnode *p; if(p->next!=NULL) q=p->next;//q是p的后继 p->next=q->next;//删除q free(q);
以上是关于线性表重点的主要内容,如果未能解决你的问题,请参考以下文章