双链表与栈

1.双链表的定义
双链表比单链表多了一个向前的指针域来指向前一个结点,可以从前往后或从后往前操作。
typedef struct dblinknode
{
data_type data;//数据域
struct dblinknode *pre;//指向前一个结点的首地址
struct dblinknode *next;//指向下一个结点的首地址
}DBLinkNode;
2.双链表中间插入
pNew指向一个新结点,要插入的数的位置进行插入
1.先找到要插入的位置
pTmp =NULL
for(i = 1;i <=pos-1;i++)
{
pTmp = pTmp->next;
}
2. pNew->next =pTmp->nex;
pNew->pre = pTmp;
if(pTmp->next!=NULL)pTmp->next->pre=pNew;
pTmp->next = pNew;
 
2.栈的定义
        栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素时称为“空栈”。特点:后进先出(LIFO) 栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素时称为“空栈”。特点:后进先出(LIFO)。
顺序栈的定义
typedef struct stack
{
data_type arr[N[; //顺序且连续存储,大小固定
int top;// top ==-1;空。top == N;满
}Stack;

入栈

int Pushstack( Stack *pstack, data_type item)
if(NULL == pStack)

{
return NOEXIT; 

//判断是否为满 
if(pstack->top ==N-1)

{
return FULL; 

pStack->top++; 
pStack->arr[pStack->top] = item;
return OK; 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值