数据结构、算法及线性表总结

一、思维导图

二、重点概念和笔记

1.头插法

 

void CreateListF(LinkList &L,int n)
{
    L=new LNode;
    int i=0;
    L->next=NULL;
    LinkList s;
    for(i=0;i<n;i++)
    {
        s=new LNode;
        s->next=L->next;
        L->next=s;
        cin>>s->data;
    }
}

 

 

 

 

 2.尾插法

void CreateListR(LinkList &L,int n)
{
    L=new LNode;
    int i=0;
    L->next=NULL;
    LinkList s;
    LinkList r=new LNode;
    r=L;
    for(i=0;i<n;i++)
    {
        s=new LNode;
        r->next=s;
        s->next=NULL;
        r=s;
        cin>>s->data;
    }
}

3.链表插入

s=new LNode;
s->data=e;
s->next=p->next;
p->next=s;

4.链表删除

q=p->next;
e=q->data;
p->next=q->next;
delete q;

5.栈

#include<stack>

stack<int>s;//定义栈s

s.push();//入栈

s.pop();//栈顶元素出栈,出栈操作只是删除栈顶元素,并不返回该元素。

s.top();//访问栈顶

s.empty();//判断栈是否为空

s.size();//访问栈中元素个数

6.队列

#include<queue>

stack<int>q;//定义队列q

q.push();//将元素接到队列的尾端

q.pop();//将队列中第一个元素弹出

q.empty();//判断队列是否为空

q.size();//访问队列中元素个数

q.front();//访问队首元素

q.back();//访问队尾元素

7.串

#include<string>

string str;//定义串str

 StrCompare( S, T);//对串进行比较

Concat( &T, S1, S2);//连接两个串组成一个新串

SubString( &Sub, S, pos, len);//求子串

StrInsert( &S, pos , T);//串插入

StrDelete( &S, pos , len);//串删除 

三、疑难问题及解决方案

1.next值,nextval值的计算

通过网上搜索加深理解:

 

 

 

 

 

 

 

 

posted @ 2020-03-28 18:00  长安某•  阅读(87)  评论(0编辑  收藏  举报