欢迎来到天天文库
浏览记录
ID:22615224
大小:108.60 KB
页数:8页
时间:2018-10-30
《数据结构知识点总结》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构知识点总结1、数据结构定义:是数据的逻辑结构和存储结构及其操作。2、数据结构主要是增、删、改、查、排序等功能的实现3、数据结构之间的关系有三种:逻辑、存储、数据运算4、数据结构的存储结构分为W种:顺序和链式,而常用的有顺序、链式、索引、散列5、顺序存储的物理存储空间是连续的,而链式可以是不连续的。6、线性表的基本过程:a)先建立结构体i.TypedefStructList{Data_tdata[N];Intlast;ii.Jlistnode;b)建表i.Listnode*crete_list(void){L
2、istnodeL=(listnode*)malloc(sizeof(listnode));L->last=-l;ReturnL;}c)向表里插入数据i.Intinsert_list(listnode*L,intpos,data_tx){lf(is_Full_list(L)){Printf("FULL.");Return-1;}For(i=L->last;i>=pos;i-){L->data[i+l]=L->data[i];}L->data[pos]=x;L->last++;Return0;ii.}d)删除表中固
3、定位置的数据i.Intdelete_list(listnode*LJntpos){lf(is_Empty_list){Printf("FULL">;Return-1;}For(i=pos;i<=L-last;i++){L->data[i-l]=L->data[i];}L->last-;Return0;••II.7、建立链式表的基本步骤:a)先建立结构体i.TypedefStructList{Data_tdata[N】;StructList*next;ii.}listnode,*linklist;b)建表i.List
4、node*crete_list(void){ListnodeL=(linklist)malloc(sizeof(listnode));L->next=NULLReturnL;}c)向表里插入数据i.Intinsert」ist(linklistL,data_tx){Linklisttemp=(linklist)mallic(sizeof(listnode));Temp->data=x;Temp->next=L->next;L->next=temp;Return0;ii.}d)删除表屮固定位置的数据i.Intdelet
5、e_list(linklistL){lf(is_Empty_list){Printf("FULL〃);Return-1;}Linklisttemp;Temp=L->next;L->nest=temp->next;Free(temp);Temp=NULL;Return0;ii.}8、单向循环链表a)在单链表的基础上修改了一些内容。i.建立链表时的指向内容:L->next=L;ii.在输出时:定义一个指针变量tempLinklisttemp;While(L->next!=temp){Printf("%dt",L-〉d
6、ata);L=L->next;}Printf("%d",L->nextj;9、栈和队列a)顺序栈和顺序表的差别不大,也可以说是基本的思想是一致的,顺序栈像是一个容器,如果容器里的东西要是想要放尽支的话,必定先从底开始存起,想要倒出来的话必定得先从上往下拿。栈与此类想法相同a)栈的建立i.建立结构体b)先建立结构体i.TypedefStructList{Data」data;StructList*top;ii.}listnode,*liststack;c)建栈i.Listnode*crete_stack(void)
7、{Linkstacks=(linkstack)malloc(sizeof(listnode));s->top=-lReturns;}d)向栈里插入数据LIntpush_stack(linkstackS,data_tx){lf(is_Full_list){Printf("Fuir);Return0;}s->data[S->top+l]=x;S->top++;N.}e)删除栈中数据i.Intpop_stack(linkstacks){lf(is_Empty」ist){Printf("FULL");Return-1;}S
8、->data[S->top]=x;S->top-;H.}10、队列a)建立结构体i.Typedefstructnode{Data」data[N】;Structnode*front,*rear;ii.Jsequeue;b)创建队列:i.Sequeue*create_sequeue(void){Sequeuesq=(sequeue*)malloc(sizeof(
此文档下载收益归作者所有