#include <stdio.h>
#include <string.h>
typedef char datatype;
typedef struct DNode
{
union
{
datatype data;
char len;
};
struct DNode *front;
struct DNode *next;
}DNode,*pDNode;
pDNode Head_Create(void)
{
pDNode H = (pDNode)malloc(sizeof(struct DNode));
if (NULL == H)
{
printf("入参为空\n");
return NULL;
}
H->len = 0;
H->front = NULL;
H->next = NULL;
return H;
}
pDNode Node_Create(datatype data)
{
pDNode new = (pDNode)malloc(sizeof(struct DNode));
if (NULL == new)
{
printf("入参为空\n");
return NULL;
}
new->data = data;
new->front = NULL;
new->next = NULL;
return new;
}
int Head_Insert(pDNode H, datatype data)
{
if (NULL == H)
return -1;
pDNode new = Node_Create(data);
if (H->next != NULL)
{
H->next->front = new;
}
new->next = H->next;
H->next = new;
new->front = H;
H->len++;
return 0;
}
int Tail_Delete(pDNode *H)
{
if (NULL == *H)
return -1;
pDNode p = (*H)->next;
while (p->next != NULL)
{
p = p->next;
}
pDNode del = NULL;
while (p != *H)
{
del = p;
printf("%c", p->data);
p = p->front;
p->next = NULL;
free(del);
del = NULL;
}
free(*H);
*H = NULL;
return 0;
}
int main(int argc, const char *argv[])
{
pDNode H = Head_Create();
for (char i = 'a'; i <= 'z'; i++)
Head_Insert(H, i);
Tail_Delete(&H);
putchar(10);
return 0;
}
10.1国庆作业
最新推荐文章于 2024-07-08 22:09:55 发布