📄 symblelinklist.h
字号:
/*=============================================
** 2005-8-26 **
** 符号表的链表操作 **
** lizhu zhang **
=============================================*/
/*=============================================
**函数功能:将新的节点连接到表的最后
**参数说明:[in]pSl:模板,具体参数由调用时指定。
** [in]pHd:连表的头节点
**返回值 : 返回连表的头节点
**===========================================*/
SYMBELLIST * FInsertNode(SYMBELLIST * pSl,SYMBELLIST * pHd,int &count)
{
//将计数清零
count = 0;
SYMBELLIST * pHead;
SYMBELLIST * pTemp;
SYMBELLIST * pTmp;
pTemp = (struct SYMBELLIST *)malloc(sizeof(SYMBELLIST));
pHead = pHd;
// pTemp = pHd;
//当连表还为空时,第一次调用此函数创建连表头
if(pHd == NULL)
{
pTemp->addr = 1;
pTemp->addr = pSl->addr;
pTemp->kind = pSl->kind;
pTemp->layer = pSl->layer;
pTemp->name.len = pSl->name.len;
pTemp->name.addr = pSl->name.addr;
pTemp->type = pSl->type;
pTemp->pNext = NULL;
pHead = pTemp;
pHead->pNext = NULL;
count = 1;
return pHead;
}
//找到最后一个节点,然后将新的节点插入到尾部
while(pHead != NULL)
{
count += 1;
pTmp = pHead;
pHead = pTmp->pNext;
}
pTemp->addr = pSl->addr;
pTemp->kind = pSl->kind;
pTemp->layer = pSl->layer;
pTemp->name.len = pSl->name.len;
pTemp->name.addr = pSl->name.addr;
pTemp->type = pSl->type;
pTemp->pNext = NULL;
pTmp->pNext = pTemp;
count += 1;
return pHd;
}
/*=============================================
**函数功能:找到指定的节点
**参数说明:[in]pHd:连表的头节点
** [in]type:0,查找toke节点,1,查找symble节点
**返回值 :成功返回找到的节点的位置,失败返回0
**===========================================*/
int FFindNode(SYMBELLIST *pHd,const int layer,const char *value)
{
SYMBELLIST *pHead;
// SYMBELLIST *pMid;
//对层进行计数
int count = 0;
while(count != layer)
{
pHead = pHd;
while(pHead!=NULL)
{
if(pHead->name.addr)
pHead = pHead->pNext;
count ++;
}
}
return 0;
}
/*=============================================
**函数功能:将所有的节点信息输出到文件
**参数说明:[in]pHd:连表的头节点
**返回值 :无
**===========================================*/
void FOutToFile(SYMBELLIST *pHead)
{
SYMBELLIST *pHd;
pHd = pHead;
while(pHd!=NULL)
{
FFileWrite("syble.txt",1,pHd);
pHd = pHd->pNext;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -