📄 对于定义的操作.cpp
字号:
#include "stdio.h"
#include "string.h"
#include "ctype.h"
#include "stdlib.h"
#include "搜索关键词.h"
#include "提取定义语句.h"
#include "对于定义的操作.h"
//按结点名查结点序号
int nodeseq_index(char *word,struct NODE *nodehead)
{
struct NODE *temp;
temp=nodehead;
word++;
while((temp->next!=NULL)&&(strcmp(temp->name,word)!=0))temp=temp->next;
if (strcmp(temp->name,word)==0)return(temp->seq);
else return(0);
}
//生成新的链表节点
struct LINK *link_genera(struct buffer *sentehead,struct NODE *nodehead,int flag)
{
struct LINK *link;
link=(LINK *)malloc(sizeof(LINK));
link->from=nodeseq_index(sentehead->next->word,nodehead);
link->end=nodeseq_index(sentehead->next->next->word,nodehead);
strcpy(link->capability,sentehead->next->next->next->word);
link->next=NULL;
link->type=flag;
return(link);
}
//插入新的链表结点
void link_inser(struct LINK *newlink,struct LINK *linktail)
{
newlink->next=linktail->next;
linktail->next=newlink;
linktail=newlink;
}
//查找链表的队列尾
struct LINK *link_index(struct LINK *linkhead)
{
struct LINK *temp;
temp=linkhead;
while(temp->next!=NULL)temp=temp->next;
return(temp);
}
//链表的定义操作
void link_operate(struct buffer *sentehead,struct LINK *linkhead,struct NODE *nodehead,int flag)
{
struct LINK *linktail,*temp;
temp=link_genera(sentehead,nodehead,flag);
linktail=link_index(linkhead);
link_inser(temp,linktail);
}
//生成新结点
struct NODE *node_genera(struct buffer *sentehead,int seq)
{
struct NODE *node;
node=(NODE *)malloc(sizeof(NODE));
strcpy(node->name,sentehead->next->word);
node->seq=seq;
node->next=NULL;
return(node);
}
//插入新结点
void node_inser(struct NODE *newnode,struct NODE *nodetail)
{
newnode->seq=nodetail->seq+1;
newnode->next=nodetail->next;
nodetail->next=newnode;
nodetail=newnode;
}
//查找结点队列尾
struct NODE *node_index(struct NODE *nodehead)
{
struct NODE *temp;
temp=nodehead;
while(temp->next!=NULL)temp=temp->next;
return(temp);
}
//结点定义的操作
void node_operate(struct buffer *sentehead,struct NODE *nodehead)
{
struct NODE *nodetail,*temp;
nodetail=node_index(nodehead);
temp=node_genera(sentehead,nodetail->seq);
node_inser(temp,nodetail);
}
//对定义的操作
struct topo *operate(struct topo *result,struct buffer *sentehead,int flag)
{
if (flag==1) node_operate(sentehead,result->nodehead);
else link_operate(sentehead,result->linkhead,result->nodehead,flag);
return(result);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -