📄 stackstack.c
字号:
/***行编辑程序***Created by YYF at 20041220****/
#include "myhdr.h"
typedef struct node{
int data;
struct node *next;
}stacknode;
typedef struct{
stacknode *top;
}stacklist;
void LineEdit();
stacklist* print(stacklist stack);
stacklist *pop(stacklist stack,char top_value);
stacklist *push(stacklist stack,char ch);
stacklist* clearstack(stacklist stack);
stacklist *initstack();
int
main()
{
LineEdit();
return 0;
}
void
LineEdit()
{
stacklist stack;
char ch;
char top_value;
stack=*(initstack());
ch=getchar();
while(ch!='.')
{
while((ch != '.') && (ch != '\n'))
{
switch(ch)
{
case '$' :stack=*(pop(stack,top_value));break;
case '@' : stack=*(clearstack(stack));break;
default : stack=*(push(stack,ch));break;
}
ch=getchar();
}
if(stack.top == NULL)
{
printf("in editline the stack is empty\n");
}
stack=*(print(stack));
stack=*(clearstack(stack));
if( ch != '.' )
{
ch = getchar();
}
}
stack=*(clearstack(stack));
}
stacklist
*initstack()
{
stacklist stack;
printf("Into initstackyyf\n");
stack.top=NULL;
printf("stack->top=NULL\n");
return &stack;
}
stacklist*
pop(stacklist stack,char top_value)
{
stacknode *node_p;
node_p=stack.top;
top_value=node_p->data;
stack.top=node_p->next;
free(node_p);
return &stack;
}
stacklist*
push(stacklist stack,char ch)
{
stacknode *node_p;
node_p=(stacknode *)malloc(sizeof(stacknode));
if( node_p == NULL )
{
printf("Allocated memmory Error\n");
exit(1);
}
node_p->data=ch;
node_p->next=stack.top;
stack.top=node_p;
return &stack;
}
stacklist *
clearstack(stacklist stack)
{
stacknode *node_p;
while(stack.top != NULL)
{
node_p = stack.top;
stack.top = node_p->next;
free(node_p);
}
stack.top=NULL;
return &stack;
}
stacklist *
print(stacklist stack)
{
char row[1024];
int i=0,j=0;
stacknode *node_p;
memset(row,0,sizeof(row));
printf("begin to print\n");
if(stack.top == NULL)
{
printf("the stack is empty\n");
}
while(stack.top != NULL)
{
node_p = stack.top;
row[i]=node_p->data;
stack.top= node_p->next;
i++;
}
for(j=0;j<=i;j++)
{
printf("%c",row[i-j]);
}
printf("\n");
return &stack;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -